6
我在MATLAB中有一個45x2單元,第一列是雙倍任意大小的矩陣。識別單元陣列中的唯一標識
其中一些矩陣是重複的,而其他矩陣不是。我試圖只去掉唯一的矩陣(但記錄重複次數),並保持第二列原樣。
我已經嘗試了一些東西(製表,hist等),但他們都失敗了,因爲細胞結構(我認爲)。如何做到這一點,而不是單獨循環每一個?
我在MATLAB中有一個45x2單元,第一列是雙倍任意大小的矩陣。識別單元陣列中的唯一標識
其中一些矩陣是重複的,而其他矩陣不是。我試圖只去掉唯一的矩陣(但記錄重複次數),並保持第二列原樣。
我已經嘗試了一些東西(製表,hist等),但他們都失敗了,因爲細胞結構(我認爲)。如何做到這一點,而不是單獨循環每一個?
如果您將您的矩陣爲字符串,您可以運行他們獨特:
%# create a sample cell array
mc = {magic(3);magic(4);magic(4);magic(5);magic(3);magic(4)}
%# convert to strings
mcs = cellfun(@(x)(mat2str(x)),mc,'uniformoutput',false);
%# run unique
[uniqueCells,idxOfUnique,idxYouWant] = unique(mcs);
瞧!非常感謝! – malangi 2010-03-06 14:45:35
請注意,第二行可以簡化爲'mcs = cellfun(@ mat2str,mc,'UniformOutput',false);' – 2016-11-22 16:31:25