【问题标题】:Searching a matrix by row and column按行和列搜索矩阵
【发布时间】:2015-06-29 16:30:09
【问题描述】:

假设我有矩阵

dataSet = [400,300,200,100,200,300,400;
             1,  2,  3,  4,  5,  6,  7]

这将给我一个 2x7 数组,其中第 1 行的数字较大,第 2 行的数字较小。

假设我得到了数字 200,并要求我找出低于 200 的所有数字是什么。答案是 3 和 5,因为它们都对应 200,但是如何将其编码到我的脚本中呢?

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:
    >> dataSet(2,dataSet(1,:) == 200)
    
    ans =
    
         3     5
    

    【讨论】:

      【解决方案2】:

      这是你想要的吗?

      [t, ~, u] = unique(dataSet(1,:));
      result = accumarray(u, dataSet(2,:).', [], @(x) {x.'});
      result = [num2cell(t).' result];
      

      在您的示例中,这给出了:

      >> result
      result = 
          [100]    [         4]
          [200]    [1x2 double]
          [300]    [1x2 double]
          [400]    [1x2 double]
      

      result{2,2} =
           3     5
      result{3,2} =
           2     6
      

      【讨论】:

      • 这确实适用于我的情况,但是对于我的特殊需求 m.s.有一个更好的答案。不过谢谢你!
      • 是的,再次阅读您的问题,m.s. 的答案。似乎更适合
      猜你喜欢
      • 2018-10-13
      • 2021-09-16
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      相关资源
      最近更新 更多