【发布时间】:2015-07-07 21:03:47
【问题描述】:
我是 Matlab 新手,我想实现一个非常简单的操作:我有一个名为 mg 的 792 x 1046 uint8 矩阵,并希望将其单元格值(从 0 到 255)转换为 1 到 4 之间的值(1 ,2,3,4) 在一个名为 mgc 的新矩阵中根据简单的条件。
奇怪的是,新矩阵只填充了 1s 和 2s,而不是任何 3s 或 4s...
这是我的代码:
[x,y]=size(mg);
mgc = zeros(x,y);
for i=1:x
for j=1:y
if (mg(i,j)<=100)
mgc(i,j)=1;
elseif (100<mg(i,j)<=110)
mgc(i,j)=2;
elseif (110<mg(i,j)<=120)
mgc(i,j)=3;
else
mgc(i,j)=4;
end
end
end
如果有人能帮我解决这个愚蠢的问题,那就太好了! 谢了
【问题讨论】:
-
您需要在
elseif语句中使用and运算符。 -
感谢您的回复 HamtaroWarrior,我确信有大于 110 的值,因为矩阵来自我在 Matlab 上处理的图像......非常奇怪
-
其实excaza是对的,没注意到你的条件缺少算子。
-
正确!这不是第一次发生在我身上,已经花了很多时间试图找出错误在哪里,我忘了检查基础知识。谢谢你excaza
标签: matlab if-statement matrix