matlab初学者例题系列4

除了对数值本身进行升序排序外,请对字符’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_Bsorted_C 分别是按照 sorted_A 的顺序重新排列的数组 BC。由于 index 变量指示了排序后的元素在原始数组中的位置,因此可以使用 B(index)C(index) 来获取按照数字排序后的对应字母顺序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值