Storing of output in a for loop
2 次查看(过去 30 天)
显示 更早的评论
I need to count the number of values in specific ranges of 0-50,50-100,100-150 etc. I did try to run the code however, I am unable to store the output for each range. Could you please let me know a solution for it?
A=xlsread('Values.xlsx','Sheet1','A2:A3204');
count=0;
for x=0:50:7500;
for i=1:3202;
if A(i)>x & A(i)<x+50
count=count+1;
end
t(1,:)=count;
end
x=x+50;
end
0 个评论
回答(1 个)
Jon
2022-5-2
编辑:Jon
2022-5-2
A=xlsread('Values.xlsx','Sheet1','A2:A3204');
count=0;
% assign x
x = 0:50:7500;
% preallocate vector to hold counts
numCounts = numel(x);
t = zeros(numCounts,1);
for k = 1:numel(x)
count = 0;
for i=1:3202
if A(i)>=x(k) && A(i)<x(k)+50 % make sure you don't overlap or leave out any
count=count+1;
end
t(k)=count;
end
end
3 个评论
Jon
2022-5-2
You could also do this in one line using MATLAB's histcounts function
t = histcounts(A,[x x(end)+50]);
Jon
2022-5-2
Sorry for all of the edits on the original answer, nothing changed too much, I guess I hadn't had my coffee yet and I kept seeing minor formatting and other cosmetic errors (removing unecessary semicolons etc)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!