water_shine
2017-10-08 07:29matlab中有关矩阵的操作的问题,如下所示,为什么得不到理想结果?
1)>>a =
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
enda =
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
这种做法才得到了想要的结果。
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- matlab采用while循环,为何循环计算输出的所有结果都是第一次计算的结果?
- 测试用例
- 3个回答
- 怎样用matlab批量处理工作区的v0~v360矩阵
- 人工智能
- 1个回答
- matlab中,如何生成一幅灰度由中心到边缘按一定规律(如高斯分布)变小的人工光斑中心模拟图?求完整代码
- matlab
- 1个回答
- matlab列数组在for循环中的一个小问题
- matlab
- 13个回答
- matlab特征值和特征向量计算问题
- matlab
- 特征向量
- 奇异矩阵
- 特征值
- 4个回答
换一换