添加Matlab数组元素

时间:2018-03-02 05:19:11

标签: arrays matlab sorting

我是Matlab的新手

我正在尝试对2x3阵列做一些事情:

  1. 将10添加到A的最高值;
  2. 将第二个最高值A
  3. 加6
  4. 将A
  5. 的第三个最高值加4
  6. 将A
  7. 的最小值加1

    例如:

    A = [13 14; 19 17; 54 33];

    输出:[14 14; 23 17; 64 39];

    有没有机会在不知道元素的情况下实现这一目标。数组内的值?

    请帮助

1 个答案:

答案 0 :(得分:1)

在不知道元素的情况下,我们可以通过调用[~,I] = sort(___)获取它们的索引并调用A(I(k))来查找矩阵A中的第k个数字。

  

[B,I] = sort(___)将返回任何索引向量的集合   以前的语法。我与A的大小相同,并描述了   沿着排序维度将A的元素排列到B中。   例如,如果A是数字向量,则B = A(I)。

%data
A = [13 14; 19 17; 54 33];

%sort
[~,index]=sort(A(:));

%add
A(index(end))=A(index(end))+10;
A(index(end-1))=A(index(end-1))+6;
A(index(end-2))=A(index(end-2))+4;
A(index(1))=A(index(1))+1;
A

参考:

doc sort