【发布时间】:2016-07-16 16:30:09
【问题描述】:
我有一个矩阵,我有兴趣更改满足该矩阵内特定条件的值,具体取决于它们的位置。假设我有一个矩阵 smallPic。如何获得具有相同维度的矩阵 smallPicB,将前两列中大于 50 的所有值更改为 255,而将第三列和第四列中的所有值更改为 180?
我有这段代码可以运行,但它非常难看,需要拆分矩阵并再次连接它:
smallPic1=smallPic(:,1:2);smallPic1(smalllPic1>50)=255;
smallPic2=smallPic(:,3:4);smallPic2(smalllPic2>50)=180;
smallPicB = [smalllPic1 smalllPic2];
如何在一个命令中结合逻辑索引和标量索引?
这是不行的:
smallPic(:,smallPic(:,3:4)>50) = 180
这里,括号内第二次提到 smallPic 不允许索引到 smallPic 的正确位置,因为它与 smallPic 的尺寸不同。所以这个命令实际上是替换 smallPic 的前两列中与第三和第四列中大于 50 的值在同一行中的值,而不是替换第三和第四列中的值本身。
还有其他建议吗?
【问题讨论】:
-
关于您的编辑:这就是我定义 J 的原因,它存储所有成员的列索引。