Storing of output in a for loop

2 visualizzazioni (ultimi 30 giorni)
Ismail Zabeeullah
Ismail Zabeeullah il 2 Mag 2022
Commentato: Jon il 2 Mag 2022
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

Risposte (1)

Jon
Jon il 2 Mag 2022
Modificato: Jon il 2 Mag 2022
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 Commenti
Jon
Jon il 2 Mag 2022
You could also do this in one line using MATLAB's histcounts function
t = histcounts(A,[x x(end)+50]);
Jon
Jon il 2 Mag 2022
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)

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by