Count number of times value appears in column
24 次查看(过去 30 天)
显示 更早的评论
I have a 1000x296 matrix called FinalRanking. The possible values in each cell are between 1 and 296, integers.
I want to count the number of times each number, 1-296, appears in each column, and return this as a 296x296 matrix, lets call it counter.
so for example Counter(1,1) has the value of the number of time 1 appears in Column 1 of FinalRanking.
or Counter(12, 57) returns the value of the number of times 12 appears in Column 57 of FinalRanking.
How would I do this? I'm assuming i need nested for loops. Thanks!
0 个评论
采纳的回答
the cyclist
2019-11-22
编辑:the cyclist
2019-11-22
% Parameterize the max value, for convenience
V = 296;
% Some simulated data
FinalRanking = randi(V,1000,V);
% Preallocate the counter array
counter = nan(V,V);
% Loop over the columns, and count the number of times each value appears
for nc = 1:V
counter(:,nc) = histcounts(FinalRanking(:,nc),[1:V Inf]);
end
更多回答(2 个)
Andrei Bobrov
2019-11-22
编辑:Andrei Bobrov
2019-11-22
out = histc(FinalRanking,1:296);
4 个评论
Andrei Bobrov
2019-11-22
"If performance is a problem due to a large number of columns in the matrix, then consider continuing to use histc for the column-wise bin counts." - wrote The Mathworks.
Image Analyst
2019-11-22
Try this:
edges = 1 : 297;
FinalRanking = randi(296, 1000, 296);
counter = zeros(296, 296);
for col = 1 : size(FinalRanking, 2)
counter(:, col) = histcounts(FinalRanking(:, col), edges);
end
imshow(counter, [], 'ColorMap', hsv(256));
axis('on', 'image');
colorbar;
impixelinfo;
2 个评论
Image Analyst
2019-11-23
编辑:Image Analyst
2019-11-23
Yes for x. But along the y axis are the histogram bins. The value, "z" value if you want to think of it like that, is the count. But the actual distance/location along the y axis is the bin number, not the "number of occurrences" (counts).
fontSize = 20; % Whatever.
xlabel('Column', 'FontSize', fontSize);
ylabel('Number (i.e., histogram bin)', 'FontSize', fontSize);
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!