【发布时间】:2017-11-05 07:32:52
【问题描述】:
我正在尝试使用以下代码,但仅获取最后一个值的索引
A=[ 3 4 1 2 4 4 4]
B=unique(A)
[b1 b2]=max(B)
while i<=numel(A)
if A(i)==A(b2)
ID=A(i)
end
end
在 matlab 中还有其他方法可以获取值为 4(最大值)的所有索引。
【问题讨论】:
标签: matlab sorting matrix vectorization
我正在尝试使用以下代码,但仅获取最后一个值的索引
A=[ 3 4 1 2 4 4 4]
B=unique(A)
[b1 b2]=max(B)
while i<=numel(A)
if A(i)==A(b2)
ID=A(i)
end
end
在 matlab 中还有其他方法可以获取值为 4(最大值)的所有索引。
【问题讨论】:
标签: matlab sorting matrix vectorization
如果您想找到矩阵中最大值的索引,则根本不需要unique。这是多余的。只需同时使用find 和max:
ID = find(A == max(A));
max(A) 返回A 中的最大值。 A == max(A) 返回一个logical 向量,其中1 对应于A 中的一个值,匹配A 中的最大值,否则0。最后,find 确定输入中非零的位置,因此实际上我们正在寻找与A 中的最大值匹配的位置。
【讨论】: