Test different number(values or label) in matrix?
2 次查看(过去 30 天)
显示 更早的评论
hello, I want to detect different number in matrix?
for exmaple in a matrix:
0 0 0 0 0 0 0;
3 3 0 0 0 0 0;
3 3 3 0 0 0 0;
0 0 0 0 4 4 4;
0 0 5 5 0 0 0;
5 5 5 5 5 0 0;
How can I know the number of different values in this matrix, and index for any elements with same value?
Can I use function 'diff'?
0 个评论
采纳的回答
Paulo Silva
2011-3-3
number of different values, A is your matrix
numel(unique(A))
All code:
a=[0 0 0 0 0 0 0
3 3 0 0 0 0 0
3 3 3 0 0 0 0
0 0 0 0 4 4 4
0 0 5 5 0 0 0
5 5 5 5 5 0 0];
b=unique(a)
for i=2:numel(b)
c=find(a==b(i))';
fprintf('The value %d appears %d times, indices %s\n',b(i),numel(c),num2str(c))
end
更多回答(1 个)
Matt Fig
2011-3-3
A = [0 0 0 0 0 0 0;
3 3 0 0 0 0 0;
3 3 3 0 0 0 0;
0 0 0 0 4 4 4;
0 0 5 5 0 0 0;
5 5 5 5 5 0 0]
U = unique(A); % Has the unique elements of A.
LU = length(U); % Has the number of unique elements of A.
[L,I] = histc(A(:).',U) % Has the counts per element and locations.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 NaNs 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!