0

私は4つの異なる長さのデータ(行)を持っており、それらはすべて異なる量の列を持っています。これらの各列に方程式を適用してから、各列から最大値を抽出する必要があります。

私が使用しようとしている方程式は次のとおりです。

averg = mean([interpolate(1:end-2),interpolate(3:end)],2); % this is just getting your average value.
real_num = interpolate(2:end-1);
streaking1 = (abs(real_num-averg)./averg)*100;

私のデータセットの1つの例は、5448行×13列です。

編集

これはBenA.のソリューションの現在の適応であり、機能しています。

A = interpolate;    
averg = (A(1:end-2,:) + A(3:end,:))/2;
center_A = A(2:end-1,:);
streaking = [];
for idx = 1:size(A,2)
    streaking(:,idx) = (abs(center_A(idx,:)-averg(idx,:))./averg(idx,:))*100;
end 
4

1 に答える 1

1

私はあなたが各ステップで行っていることを完全に実行しているとは完全にはわかりませんが、ここにそれを突き刺します:

A = interpolate;    
averg = (A(1:end-2,:) + A(3:end,:))/2;
center_A = A(2:end-1,:);
streaking = [];
for idx = 1:size(A,2)
    streaking(:,idx) = (abs(center_A(idx,:)-averg(idx,:))./averg(idx,:))*100;
end 

Avergは、各列の平均のベクトルになります。指定された列の値を、以前に持っていたreal_num変数として使用します。何もないので、インデックスルールに違反するリスクがあるので、なぜインデックスを作成する必要があるのか​​わかりません。

これが役に立ったら、素晴らしいです!私に知らせない場合は、私がいくらか修正できるかどうかを確認します。

于 2012-08-03T17:10:17.337 に答える