【发布时间】:2014-08-21 10:34:28
【问题描述】:
我需要在 matlab 中找到具有相同标签的值中的最大值,并且我试图避免使用 for 循环。
具体来说,我有一个标签数组L 和一个值数组V,大小相同。我需要生成一个数组S,其中包含L 的每个值V 的最大值。一个例子会更好地解释:
L = [1,1,1,2,2,2,3,3,3,4,4,4,1,2,3,4]
V = [5,4,3,2,1,2,3,4,5,6,7,8,9,8,7,6]
那么,输出数组 S 的值将是:
s(1) = 9 (the values V(i) such that L(i) == 1 are: 5,4,3,9 -> max = 9)
s(2) = 8 (the values V(i) such that L(i) == 2 are: 2,1,2,8 -> max = 8)
s(3) = 7 (the values V(i) such that L(i) == 3 are: 3,4,5,7 -> max = 7)
s(4) = 8 (the values V(i) such that L(i) == 4 are: 6,7,8,6 -> max = 8)
这可以通过使用 for 循环遍历数组 L 和 V 来轻松实现,但在 Matlab 中 for 循环很慢,所以我一直在寻找更快的解决方案。有什么想法吗?
【问题讨论】: