How to count frequency of non zero elements col wise
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Vishal Sharma
am 30 Jun. 2017
Kommentiert: Stephen23
am 30 Jun. 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 Kommentare
Akzeptierte Antwort
Stephen23
am 30 Jun. 2017
Bearbeitet: Stephen23
am 30 Jun. 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 Kommentare
Stephen23
am 30 Jun. 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.
Weitere Antworten (1)
Jan
am 30 Jun. 2017
Bearbeitet: Jan
am 30 Jun. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Data Distribution Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!