我的数组值如下所示:
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]};
答案 0 :(得分:0)
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)