I don't get the answer that i want?

4 次查看(过去 30 天)
went I select number from between 1 to 10 I should get the result = normal and Acc =100 but wwhen I run it I get result = normal and Acc=0. so can anyone help my finding the error?
prompt = 'Select the number: ';
iii= input(prompt);
for iiii=1:10
if z(iii)==0
result= 'normal';
Acc='100%';
else
result ='patient';
Acc='0%';
end
end
for iiii=11:30
if z(iii)==0
result= 'patient';
Acc='100%';
else
result ='normal';
Acc='0%';
end
end
  3 个评论
James Tursa
James Tursa 2018-4-24
It is not really clear what you are trying to do. Can you give some short examples of inputs and desired outputs? Also, picking iii and iiii as variable names is a really good way to confuse the reader. Pick better names.
Ahmed Alshehhi
Ahmed Alshehhi 2018-4-24
The function z is giving the output of 30 data which is should be equal to 0 and i have divide it into two set from 1:10 and 11:30 base in my fuction z every set have different meaning so i used the above loop

请先登录,再进行评论。

采纳的回答

Steven Lord
Steven Lord 2018-4-24
There are several areas for improvement or issues that you should correct in your code.
  1. Your for loop variable name contains 4 lower-case I characters and that variable is never used inside the loop, so the loops are completely unnecessary.
  2. Related to the first item, you should use descriptive (and easily distinguishable) names for your variables. The names iii and iiii are not descriptive and it would be easy, after working on this code for a while, to forget what each one represents and accidentally use iiii instead of iii. Don't be like this guy.
  3. If you want to check if the number is one of a specific set of numbers (like 1, 2, or 3) you can use the ismember function or the switch and case keywords.
  4. If you want to check if the number is between certain bounds (like determining if x is between 1 and 3 inclusive) use the relational operators like (1 <= x) & (x <= 3).

更多回答(1 个)

Benjamin Großmann
Benjamin Großmann 2018-4-24
编辑:Benjamin Großmann 2018-4-24
What is the purpose of your code? You prompt for iii (3xi) and loop through iiii (4xi); Within the loops nothing changes, right?
The last else statement is (somehow) fullfilled and the variables are then result ='normal'; Acc='0%'; I can not see some problem here as long as you do not provide z and a proper input for iii which can reproduce some kind of error.
  1 个评论
Ahmed Alshehhi
Ahmed Alshehhi 2018-4-24
the function z is output equal to 0 or 1 for 30 data so, i divide it into two set from 1:10 and 11:30 and i ask the user to select number between 1:30 to check in which result he get , but when i run and for example when i entering the value 1 for iii I get result = normal and Acc =0 which should be 100

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by