【问题标题】:List all values in an array without repeats列出数组中的所有值而不重复
【发布时间】:2016-01-06 19:27:37
【问题描述】:

假设我有一个 100 x 100 矩阵,由 250s、125s、15s 和 9s 的某种组合组成。我想返回这个矩阵中所有唯一值的排序向量。

关于:

sort(somefunction(matrix))=vector 

我想得到的结果是这样的:

vector=9,15,125,250

有没有快速简便的方法来做到这一点?

【问题讨论】:

    标签: matlab matrix vector unique


    【解决方案1】:
    b = unique(a)
    

    查看unique上的文档

    A = randi(9,10,10);
    unique(A)
    ans =
         1
         2
         3
         4
         5
         6
         7
         8
         9
    

    【讨论】:

      【解决方案2】:
      b = sort(a(:));
      

      这应该可以对您的矩阵进行排序;

      这会将所有值返回到一个向量中。

      b = unique(a(:));
      

      【讨论】:

      • @Adriaan,真正的独特应该做这项工作,如果他也想排序,那么第一个代码行就可以完成这项工作。
      • 使用sort 然后调用unique 是多余的。 unique 的默认输出已经对矩阵或数组中的所有唯一值进行了排序。
      • 如果他想要排序,则使用一个命令,如果他希望矩阵中的所有元素在排序后出现,则使用另一个命令。我读了他的问题并首先想到他只想排序......
      猜你喜欢
      • 2018-06-17
      • 2022-09-27
      • 2019-06-03
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多