How to count frequency of non zero elements col wise
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Vishal Sharma
el 30 de Jun. de 2017
Comentada: Stephen23
el 30 de Jun. de 2017
I have a matrix
A = [
1 2 3 0 0;
2 2 0 2 1;
1 0 2 3 1]
I want to count column wise frequency of occurrence of all non zero numbers, i.e. 1, 2, 3 So as to get result in form of
First Col 1 (2) 2(1) 3(0)
Second Col 1(0) 2(2) 3(0)
Third Col 1(0) 2(1) 3(1)
Forth Col 1(0) 2(1) 3(1)
Fifth Col 1(2) 2(0) 3(0)
0 comentarios
Respuesta aceptada
Stephen23
el 30 de Jun. de 2017
Editada: Stephen23
el 30 de Jun. de 2017
>> [N,C] = hist(A,0:3);
>> Z = N(C~=0,:).'
Z =
2 1 0
0 2 0
0 1 1
0 1 1
2 0 0
2 comentarios
Stephen23
el 30 de Jun. de 2017
@Jan Simon: as I only have access to older MATLAB versions this topic has not yet come up for me... and why they needed to be replaced is not really very clear to me either.
Más respuestas (1)
Jan
el 30 de Jun. de 2017
Editada: Jan
el 30 de Jun. de 2017
A = [1 2 3 0 0; ...
2 2 0 2 1; ...
1 0 2 3 1];
nCol = size(A, 2);
Edges = [unique(A(A ~= 0)); Inf];
Result = struct('N', cell(1, nCol));
for k = 1:nCol
Result(k).N = histcounts(A(:, k), Edges);
end
Or
Result = zeros(numel(Edges) - 1, nCol);
for k = 1:nCol
Result(:, k) = histcounts(A(:, k), Edges);
end
0 comentarios
Ver también
Categorías
Más información sobre Data Distribution Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!