找到max和min的位置并在矩阵中替换它们的值

时间:2016-01-30 19:09:52

标签: matlab

如果我使用代码r = rand(5)生成一个随机的5乘5矩阵。 我想找到最大值的位置,并将此值替换为10和最小值,并将值替换为-10

我该怎么做?

我尝试执行以下操作:

r=rand(5)
find(max(max(r)))

这条线会给我正确的最大值位置吗?如果现在是正确的,我怎样才能将值替换为10

2 个答案:

答案 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;