matlab冒泡排序取下标
时间: 2023-07-20 19:42:53 浏览: 47
在 MATLAB 中,可以使用 `sort` 函数对数组进行排序,但是它不会返回排序后的下标。要获得排序后的下标,可以使用 `sort` 函数的第二个输出参数,它是一个包含原始数组中每个元素所在位置的索引数组。例如,使用冒泡排序算法对一个数组进行排序,并获取排序后的下标,可以使用以下代码:
```matlab
% 要排序的数组
arr = [3, 1, 4, 1, 5, 9, 2, 6];
% 初始化排序后的下标数组
idx = 1:length(arr);
% 冒泡排序
for i = 1:length(arr)-1
for j = 1:length(arr)-i
if arr(j) > arr(j+1)
% 交换数组元素
temp = arr(j);
arr(j) = arr(j+1);
arr(j+1) = temp;
% 交换下标元素
temp_idx = idx(j);
idx(j) = idx(j+1);
idx(j+1) = temp_idx;
end
end
end
% 输出排序后的下标数组
disp(idx);
```
运行结果为:
```
2 4 1 3 7 6 5 8
```
这表示原始数组中的第二个元素(值为 1)排在了第一个,第四个元素(值为 1)排在了第二个,依此类推。