【问题标题】:adding Matlab array's elements添加 Matlab 数组的元素
【发布时间】:2018-03-02 05:19:10
【问题描述】:

我是 Matlab 新手

我正在尝试对 2x3 数组 A 做一些事情:

  1. A的最大值加10;
  2. 将 A 的第二高值加 6
  3. 将 A 的第三高值加 4
  4. A的最小值加1

例如:

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

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

有没有机会在不知道数组中元素的值的情况下实现这一点?

请帮忙

【问题讨论】:

    标签: arrays matlab sorting


    【解决方案1】:

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

    [B,I] = sort(___) 将返回一个索引向量的集合 以前的语法。 I 与 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
    

    【讨论】:

    • @dark.o 很高兴我能提供帮助。另外,下次你应该先问MATLAB,因为helpdoc是新手的绝佳指南。
    • 好的~~在发布问题之前我确实通读了文档^^
    • 哦,对不起。我为我的话道歉。
    • 没关系。你的回答对我帮助很大。谢谢~~
    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多