【问题标题】:How to get a unique array value in Matlab?如何在 Matlab 中获取唯一的数组值?
【发布时间】:2014-11-03 19:10:51
【问题描述】:

我有像下面这样的 sn-p 数组值:

a =  { [1 2 4]; [3 5 6 7]; [1 2 4]; [3 5 6 7]; [8 9]; []};

我正在尝试使用 Matlab 来获取这样的数组值

a = { [1 2 4]; [3 5 6 7];[8 9]};

【问题讨论】:

    标签: matlab cell-array


    【解决方案1】:

    查找唯一性的基本解决方案

    unique(cellfun(@(x)(mat2str(x)),a,'uniformoutput',false))
    

    实际上可以找到here


    复杂因素

    从技术上讲,最后的空单元格也是唯一的,也许你想像这样单独删除它:

    a(cellfun(@isempty,a)) = []
    

    目前你得到字符串作为输出,可以这样解决:

    [~, idx] = unique(cellfun(@(x)(mat2str(x)),a,'uniformoutput',false))
    a(idx)
    

    我个人认为这比应该的要难。


    总结

    你可以像这样得到你想要的输出

    a(cellfun(@isempty,a)) = []
    [~, idx] = unique(cellfun(@(x)(mat2str(x)),a,'uniformoutput',false))
    a(idx)
    

    【讨论】:

      猜你喜欢
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2012-05-11
      • 2012-06-30
      • 1970-01-01
      相关资源
      最近更新 更多