MATLAB对随机数组的排序

用MATLAB对生成的随机数组进行冒泡排序
由于我是初学者,所以对一些语法不太了解
首先,我用rand取了一行10列的随机数组
接着,用for循环嵌套for再加上if语句实现冒泡
最后运行结果显示数据索引必须为正整数或逻辑值。

img

要实现对随机数组的冒泡排序
应如何编码吗?求告知,感谢

array = randi([1, 25], 1, 10);

n = length(array);
for i = 1:n-1
    for j = 1:n-i
        if array(j) > array(j+1)
            temp = array(j);
            array(j) = array(j+1);
            array(j+1) = temp;
        end
    end
end

disp(array);

我将使用冒泡排序算法对随机数组进行排序。冒泡排序的思想是多次遍历数组,每次比较相邻的两个元素,如果顺序不正确就进行交换,直到数组排序完成。

以下是使用MATLAB实现冒泡排序的代码:

% 生成一行十列的随机数组
arr = rand(1, 10);

% 冒泡排序
n = length(arr);
for i = 1:n-1
    for j = 1:n-i
        if arr(j) > arr(j+1)
            % 交换位置
            temp = arr(j);
            arr(j) = arr(j+1);
            arr(j+1) = temp;
        end
    end
end

% 输出排序结果
arr

请注意,这段代码将会对随机数组进行原地排序,即通过交换数组元素的位置来实现排序。完成排序后,通过输出arr来查看排序结果。

如果你的问题仍然存在,可能原因是数组索引出现了错误。请确保索引的是正整数,并且没有超出数组元素的范围。另外,也可以通过使用disp函数输出中间结果来进行debug。

希望这个答案对你有帮助!如果还有其他问题,请随时追问。