MATLAB 使用矩陣過程中常見錯誤
阿新 • • 發佈:2019-01-08
1)>>a =
3 4 80
5 7 5
3 4 80
5 7 5
4 99 0
>> for i=1:3
[u,v]=find(a==max(a(:,i)))%本意是找到a中每列的最大值,並將其用255代替
a(u,v)=255
end
>>a =
3 4 80
255 255 255
255 255 255
解釋:出現此結果的原因:find中用的是a,每一次迴圈會找到可能幾個跟max(a(:,i))相等的值。
2)>>for i=1:3
[u,i]=find(a(:,i)==max(a(:,i)))%將上述錯誤之處改成了a(:,i),本意是找到a中每列的最大值,並將其用255代替
a(u,i)=255
end
>>a =
255 4 80
255 7 5
255 99 0
結果仍然錯誤,為什麼?
3)>> for i=1:3
aa=a(:,i)
[u,v]=find(aa==max(aa))
a(u,i)=255;
end
>>a =
3 4 255
255 7 5
4 255 0
這種做法才得到了想要的結果。