我在Matlab中有一个大小为A
的数字单元格数组Mx3
。
我想选择单元格的唯一行。
问题之一是电池部件可能具有不同的尺寸。
例如
A{1,1}=[1 1];
A{1,2}=3;
A{1,3}=[4 4 4 4];
A{2,1}=0;
A{2,2}=[10 10];
A{2,3}=7;
A{3,1}=[1 1];
A{3,2}=3;
A{3,3}=[4 4 4 4];
输出应为
B{1,1}=[1 1];
B{1,2}=3;
B{1,3}=[4 4 4 4];
B{2,1}=0;
B{2,2}=[10 10];
B{2,3}=7;
在我的实际情况下,M=27000
。
答案 0 :(得分:0)
只需将单元格数组转换为Datahashes的矩阵。
然后,像往常一样检查Unique Rows。
opt.Method='MD2'; % Select the cheapest one
opt.Format='uint8'; % Select a numeric one
b=arrayfun(@(x)sum(GEN.checksum(x,opt)),A,'uni',true)
[~,i]=unique(b(:,1),'rows')
Au=A{i,:,:}
您可以将其仅应用到第一列,然后再深入。