除了对数值本身进行升序排序外,请对字符’x‘,’y‘,’z‘根据其表示的数值大小也进行升序排列。
clear all;
clc;
x=input('请输入整数x=');
y=input('请输入整数y=');
z=input('请输入整数z=');
A=['x','y','z']; %普通字符数组,为了使用index排序而定义
[number_sort,index]=sort([x,y,z]); %sort_arry=sort(arry,ascend/descend),其中ascend表示升序排列,descend表示降序排列。缺省时默认升序排列。 此处对数字进行排序,并返回index值。
letter_sort=A(index); %此处按照数字排列方法,对字符数组进行排列
disp('排序后的数字数组:');
disp(number_sort);
disp('按照数字排序后的字母数组:');
disp(letter_sort); %也可以用fprintf函数进行输出:
%fprintf("排序后的数字数组:%d %d %d\n", Number_descending);
%fprintf("按照数字排序后的字母数组:%s %s %s\n", Letter_descending);
% %s表示字符串
当使用 sort
函数对数组进行排序时,有时需要知道哪些元素在排序后的数组中位于原始数组的哪个位置。这时就可以使用 index
变量。
例如,考虑以下数组:
A = [10, 5, 20, 15];
如果要按升序对该数组进行排序,则可以使用以下代码:
[sorted_A, index] = sort(A);
这将得到以下结果:
sorted_A = [5, 10, 15, 20] index = [2, 1, 4, 3]
sorted_A
是排序后的数组,index
是排序后的元素在原始数组中的索引顺序。因此,sorted_A(1)
实际上是原始数组中第二个元素(即 A(2)
),而 sorted_A(4)
实际上是原始数组中第三个元素(即 A(4)
)。
如果要根据排序结果重新排列其他相关的数组或变量,则可以使用 index
变量。例如,假设有以下两个数组:
B = [100, 200, 300, 400];
C = ['a', 'b', 'c', 'd'];
我们可以使用 index
变量来重新排列这两个数组,以匹配 sorted_A
的顺序:
sorted_B = B(index);
sorted_C = C(index);
sorted_B = [200, 100, 400, 300]
sorted_C = ['b', 'a', 'd', 'c']
在这个例子中,sorted_B
和 sorted_C
分别是按照 sorted_A
的顺序重新排列的数组 B
和 C
。由于 index
变量指示了排序后的元素在原始数组中的位置,因此可以使用 B(index)
和 C(index)
来获取按照数字排序后的对应字母顺序。