我有这样的情况
我有数据 M尺寸(x乘2)
中的数据已经在分类组中C = unique(M(:) , 'rows'); %result will be in g-by-2
现在我想将数据组M赋予C
通过创建一个M-by-1的R矩阵。
实施例
M = [ 1 2;
3 3;
1 2;
1 5;
. . ];
assume I got 3 groups
C = [ 1 2;
3 3;
1 5];
I want R to be like
R = [ 1;
2;
1;
3;
. ];
我尝试使用循环并找到比较所有组
for i = 1:size(C(1)
find(M(:) == C(i,:));
end
但它没有工作
答案 0 :(得分:2)
无需查找组号。你应该这样做:
M = [ 1 2;
3 3;
1 2;
1 5;
];
[CC,ia,ic] = unique(M,'rows')
CC =
1 2
1 5
3 3
ia =
3
4
2
ic =
1
3
1
2
您正在寻找ic 。
答案 1 :(得分:1)
问题是,您正在使用输入参数M(:)
,这不再是矩阵。请改用[A,B,C]=unique(M , 'rows')
。
除此之外,预期输出的顺序需要选项'stable'