matlab求数组最大的前三个数,并获得索引
时间: 2024-01-22 11:19:42 浏览: 118
可以使用 `sort` 函数和 `find` 函数实现:
首先使用 `sort` 函数将数组从大到小排序,并获取排序后的下标:
```
[sortedArray, sortedIndex] = sort(originalArray,'descend');
```
然后使用 `find` 函数获取排序后前三个数的下标:
```
topThreeIndex = sortedIndex(1:3);
```
最后,可以按照需要输出前三个数及其下标:
```
fprintf('前三个最大值分别为:%d %d %d\n', sortedArray(1), sortedArray(2), sortedArray(3));
fprintf('它们的下标分别为:%d %d %d\n', topThreeIndex(1), topThreeIndex(2), topThreeIndex(3));
```
完整的代码如下:
```matlab
originalArray = [5, 8, 3, 9, 6, 2, 7];
[sortedArray, sortedIndex] = sort(originalArray,'descend');
topThreeIndex = sortedIndex(1:3);
fprintf('前三个最大值分别为:%d %d %d\n', sortedArray(1), sortedArray(2), sortedArray(3));
fprintf('它们的下标分别为:%d %d %d\n', topThreeIndex(1), topThreeIndex(2), topThreeIndex(3));
```
阅读全文