for loops and if statements
Show older comments
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
on 14 May 2020
(Answers Dev) Restored edit
Answers (1)
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
Aroi Mehu
on 8 Apr 2020
Aroi Mehu
on 8 Apr 2020
Walter Roberson
on 8 Apr 2020
When the assignment asked you to use a for loop, the intention was that you would check one element at a time and increment a counter if appropriate.
Your code was not just over-complicated, it was also doing the wrong thing.
Aroi Mehu
on 9 Apr 2020
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
on 9 Apr 2020
Categories
Find more on Image Processing and Computer Vision in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!