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!