Using an if/else statement inside of a for loop

100 vues (au cours des 30 derniers jours)
Amanda Wojcik
Amanda Wojcik le 1 Nov 2017
Commenté : Walter Roberson le 29 Juin 2020
Hi! I am trying to write an if else statement inside of a for loop in order to determine how many people surveyed had a specific response. I posted my code below. Every time I run it instead of generating the numbers, it generates my fprintf statement that amount of time. I am just really confused because I followed the template my professor gave and it just isn't working for me. Thank you,
y=load('Class19_survey.txt');
ag=0;
ne=0;
dis=0;
for k=1:length(y)
if y(k)>=4
ag=ag+1;
fprintf('\nThe number of people who agree is\n',ag)
elseif y(k)==3
ne=ne+1
fprintf('\nThe number of neutral responses is\n',ne)
else y(k)<=2
dis=dis+1
fprintf('\nThe number of disagree responses is\n', dis)
end
end
  1 commentaire
Amanda Wojcik
Amanda Wojcik le 1 Nov 2017
Sorry here is an easier version to read
y=load('Class19_survey.txt');
ag=0;
ne=0;
dis=0;
for k=1:length(y)
if y(k)>=4
ag=ag+1;
fprintf('\nThe number of people who agree is\n',ag)
elseif y(k)==3
ne=ne+1
fprintf('\nThe number of neutral responses is\n',ne)
else y(k)<=2
dis=dis+1
fprintf('\nThe number of disagree responses is\n', dis)
end
end

Connectez-vous pour commenter.

Réponse acceptée

KL
KL le 1 Nov 2017
Perhaps you want something like this,
y=load('Class19_survey.txt');
ag=0;
ne=0;
dis=0;
for k=1:length(y)
if y(k)>=4
ag=ag+1;
elseif y(k)==3
ne=ne+1;
else y(k)<=2
dis=dis+1;
end
end
fprintf('\nThe number of people who agree is\n',ag)
fprintf('\nThe number of neutral responses is\n',ne)
fprintf('\nThe number of disagree responses is\n', dis)
but you could also do it without the loop and if statements,
ag = length(y(y>=4));
ne = length(y(y==3));
dis = length(y(y<=2));
  1 commentaire
Walter Roberson
Walter Roberson le 29 Juin 2020
ag = nnz(y>=4);
ne = nnz(y==3);
dis = nnz(y<=2);

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 1 Nov 2017
y=load('Class19_survey.txt');
ag=0;
ne=0;
dis=0;
for k=1:length(y)
if y(k)>=4
ag=ag+1;
elseif y(k)==3
ne=ne+1;
else y(k)<=2
dis=dis+1;
end
end
fprintf('\nThe number of people who agree is\n',ag);
fprintf('\nThe number of neutral responses is\n',ne);
fprintf('\nThe number of disagree responses is\n', dis);

Catégories

En savoir plus sur Language Fundamentals dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by