你似乎是一個相當新的用戶,所以歡迎來到SO。兩件事:1)如果您認爲我或其他人回答了您的問題,請點擊答案旁邊的勾號。至於第二個,那麼...
2)這聽起來像一個家庭作業問題(即即使你知道有更好的方法你想使用IF語句的事實)。如果是這種情況,請注意以備參考,如果您在問題中證明您至少嘗試自己解決問題,那麼人們更可能提供幫助。
在的機會,這不是一門功課的問題,這裏有兩個解決方案(一個if語句,其他沒有):
%#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
另請參見:[你有什麼嘗試](http://mattgemmell.com/2008/12/08/what-have-you-tried/)? –