我有这个矩阵
1 2
1 3
1 4
2 1
2 2
3 1
从这个矩阵中我想要一个类似的数据结构
1={2 3 4}
2 = {1 2}
3 = {1}
如何在 matlab 中有效地完成此操作?
最佳答案
您可以使用accumarray
为了那个原因。让你的矩阵表示为M
。
[bb, ~, jj] = unique(M(:,1));
occ = accumarray(jj,M(:,2),[],@(v) {v(:).'});
result = [num2cell(bb) occ];
结果是一个 2 列元胞数组。根据您的示例数据,
>> result{:,1}
ans =
1
ans =
2
ans =
3
>> result{:,2}
ans =
2 3 4
ans =
1 2
ans =
1
关于matlab - 将唯一元素的索引存储在矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22425327/