如果我使用代码r = rand(5)
生成一个随机的5乘5矩阵。
我想找到最大值的位置,并将此值替换为10
和最小值,并将值替换为-10
。
我该怎么做?
我尝试执行以下操作:
r=rand(5)
find(max(max(r)))
这条线会给我正确的最大值位置吗?如果现在是正确的,我怎样才能将值替换为10
?
答案 0 :(得分:2)
r = rand(5);
maxr = max(r(:));%//get maximum
r(r==maxr) = 10; %// replace maximum with 10
使用logical indexing将最大值替换为10
。
答案 1 :(得分:2)
max
返回两个输出参数,首先是值,然后是索引。使用(:)
将矩阵转换为矢量并使用线性索引进行访问,您可以使用以下代码:
[value,index]=max(r(:));
r(index)=10;