Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 查找数组最大值的索引_Arrays_Matlab - Fatal编程技术网

Arrays 查找数组最大值的索引

Arrays 查找数组最大值的索引,arrays,matlab,Arrays,Matlab,如何在MATLAB中找到一维数组的2个最大值的索引?我的是一个包含不同分数列表的数组,我想打印最高的两个分数。要获得两个最大元素的索引:使用的第二个输出获得排序后的索引,然后选择最后两个: x = [3 2 5 4 7 3 2 6 4]; [~, ind] = sort(x); result = ind(end-1:end); 在这种情况下, result = 8 5 要获取两个最大元素的索引,请使用的第二个输出获取已排序的索引,然后选择最后两个: x = [3 2 5 4

如何在MATLAB中找到一维数组的2个最大值的索引?我的是一个包含不同分数列表的数组,我想打印最高的两个分数。

要获得两个最大元素的索引:使用的第二个输出获得排序后的索引,然后选择最后两个:

x = [3 2 5 4 7 3 2 6 4];
[~, ind] = sort(x);
result = ind(end-1:end);
在这种情况下,

result =
     8     5

要获取两个最大元素的索引,请使用的第二个输出获取已排序的索引,然后选择最后两个:

x = [3 2 5 4 7 3 2 6 4];
[~, ind] = sort(x);
result = ind(end-1:end);
在这种情况下,

result =
     8     5
正如@LuisMendo所建议的,您可以使用:

[B,I] = sort(array,'descend');
这将为您提供变量
B
数组的排序版本,以及
I
中原始位置的索引,这些索引从最高到最低排序。因此,
B(1:2)
为您提供了最高的两个值,
I(1:2)
为您提供了您可以使用的
数组中的索引,正如@LuisMendo所建议的:

[B,I] = sort(array,'descend');
这将为您提供变量
B
数组的排序版本,以及
I
中原始位置的索引,这些索引从最高到最低排序。因此,
B(1:2)
为您提供最高的两个值,
I(1:2)
为您提供
数组中的索引

我将使用
O(k*n)
解决方案,其中
k
是您要查找的最大值的数量,而不是
O(n log n)

这仅在
k
小于
logn
时才可行。事实上,如果
k>=3
我会把它放在一个循环中,这可能会冒犯一些人的敏感度

我将使用
O(k*n)
解决方案,其中
k
是您要查找的最大值的数目,而不是
O(n log n)


这仅在
k
小于
logn
时才可行。事实上,如果
k>=3
我会把它放在一个循环中,这可能会冒犯一些人的敏感度

使用
排序
并选择最后两个值Y,谢谢,但正如我所做的排序一样,随着索引的变化,您能否更具体一些?所需的输出是什么?值、索引或两者?@Spen I的可能重复与建议的重复不一致,因为那里的解决方案只给出一个索引,这确实非常容易,第二个输出是
min
max
。获取第二个最大值需要扩展副本的答案(参见比克的答案)或完全不同的方法(参见Luis的
sort
方法)。使用
sort
并选择最后两个值谢了,但正如我所做的排序一样,索引正在变化,你能说得更具体些吗?你想要的结果是什么?值、索引或两者?@Spen I的可能重复与建议的重复不一致,因为那里的解决方案只给出一个索引,这确实非常容易,第二个输出是
min
max
。获得第二个最大值需要对副本的答案进行扩展(参见Bicker的答案)或完全不同的方法(参见Luis的
sort
方法)。