create cell array based on unique combinations in two columns
1 回表示 (過去 30 日間)
古いコメントを表示
Hi!
i have a matrix with 3 columns and the first two columns contains x- and y coordinates.
looks something like this [1 1 1, 1 1 2, 2 1 1, 1 2 1, 2 1 6......]
I want to create a cell array based on the content in the two first columns, more precise i want each cell to contain all values in column 3 that has the same values in column 1 and 2.
I have managed to do it based on the value in one columns:
X=arrayfun(@(x) data(data(:,1)==x, :), unique(data(:,1)),'uniformoutput', false);
the problem is that the same x coordinate (column 1) can have several y coordinates (column 2).
so my question is: how can a create a cell array based on the unique combination of two columns?
0 件のコメント
採用された回答
Bruno Luong
2018 年 11 月 6 日
data=ceil(4*rand(20,3))
[m,n] = size(data);
B = sortrows(data,[1 2]);
G = mat2cell(B,diff([0; find(any(diff(B(:,[1 2])),2)); m]),n);
G{:}
その他の回答 (1 件)
Bruno Luong
2018 年 11 月 6 日
data=ceil(4*rand(20,3))
[~,~,J] = unique(data(:,[1,2]),'rows');
G = accumarray(J(:),(1:length(J)),[],@(r) {data(sort(r),:)});
G{:}
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Multidimensional Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!