あなたはかなり新しいユーザーのようです。SO へようこそ。2 つのこと: 1) 私または他の誰かがあなたの質問に回答したと思われる場合は、回答の横にあるチェック マークをクリックしてください。2番に関しては、うーん…
2) これは宿題の質問のように聞こえます (つまり、より良い方法があることを知っていても、IF ステートメントを使用したいという事実)。このような場合は、少なくとも自分で問題を解決しようとしたことを質問で示した場合、人々が助けを提供する可能性が高くなることを今後の参考のために注意してください.
これが宿題ではない場合のために、ここに 2 つの解決策があります (1 つは IF ステートメントを使用し、もう 1 つは使用しません)。
%#Setup
A = [2 4 6 8 ; 3 5 7 9 ; 1 4 6 9];
Med1 = median(A, 1); %median of each column
Med2 = median(A, 2); %median of each row
T = size(A, 1);
N = size(A, 2);
%#Your IF solution
MedianMap2 = NaN(T, N);
for t = 1:1:size(A, 1)
for n = 1:1:size(A, 2)
if A(t, n) > Med1(1, n) && A(t, n) > Med2(t, 1)
MedianMap2(t, n) = 1;
elseif A(t, n) < Med1(1, n) && A(t, n) < Med2(t, 1)
MedianMap2(t, n) = -1;
else
MedianMap2(t, n) = 0;
end
end
end
%#A better solution
I1 = (A > ones(T, 1) * Med1) .* (A > Med2 * ones(1, N));
I2 = (A < ones(T, 1) * Med1) .* (A < Med2 * ones(1, N));
MedianMap1 = zeros(T, N) + I1 - I2;
%#Print output
MedianMap1