for loops and if statements
古いコメントを表示
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 件のコメント
Rena Berman
2020 年 5 月 14 日
(Answers Dev) Restored edit
回答 (1 件)
Walter Roberson
2020 年 4 月 7 日
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 件のコメント
Aroi Mehu
2020 年 4 月 8 日
Aroi Mehu
2020 年 4 月 8 日
Walter Roberson
2020 年 4 月 8 日
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
2020 年 4 月 9 日
Walter Roberson
2020 年 4 月 9 日
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
2020 年 4 月 9 日
カテゴリ
ヘルプ センター および 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!