MATLAB Answers

for loops and if statements

4 views (last 30 days)
Aroi Mehu
Aroi Mehu on 7 Apr 2020
Commented: Rena Berman on 14 May 2020 at 16:02
I have a set of questions based on a task. Basically one of the questions ask to write a function that counts the number of values that have a greater value of 100 and above, in one of the specfic coloumns of a matrix (provided that you input a matrix).
can i double check this code and if so, is there anything i can do to fix the errors i get when i input a matrix, since its not working when i run. Any tips and advice thank you in advance.
function numbers = PARTAQ1(material)
[m n] = size(material)
index = material(:,1);
ys = material(:,2); %the specfic coloumn of intrest
uts = material(:,3);
ym = material(:,4);
cost = material(:,5);
for i = 1:n
if ys >= 100
numbers = sum(ys >= 100);
disp(numbers);
else
disp(0)
end
end

  1 Comment

Rena Berman
Rena Berman on 14 May 2020 at 16:02
(Answers Dev) Restored edit

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 7 Apr 2020
if ys >= 100
ys is a vector. When you compare a vector to a value, the result is a logical vector of results. When you have that inside an if test, if is only considered true if all of the entries are non-zero (true). So if at least one entry inside ys is less than 100, then the test would not succeed.
Question: Why are you testing the same thing every iteration of i?

  6 Comments

Show 3 older comments
Aroi Mehu
Aroi Mehu on 9 Apr 2020
could you provide an example to this as I am not really confident in using for loops
Walter Roberson
Walter Roberson on 9 Apr 2020
count = 0;
X = randi([0 50], 1, 10)
for K = 1 : 10
if mod(X(K),3) == 2 %some test
count = count + 1;
end
end
Aroi Mehu
Aroi Mehu on 9 Apr 2020
thank you so mcuh this will help

Sign in to comment.

Sign in to answer this question.