Only gu values tu ?

조회 수: 1 (최근 30일)
Steven Thies
Steven Thies 2021년 2월 18일
댓글: Rena Berman 2021년 5월 6일
Hello Matlab community,
i created a script and everything works but i want to add that the script accepts also only integer values for m. How can i do this?
i = 0;
m = input('please number: ','s');
while isnan (str2double(m)) == true || str2double(m)<0
m = input('please again: ','s');
if isnan (str2double(m)) == true || str2double(m)<0
i = i+1;
if i == 4
return
end
else
break
end
end
  댓글 수: 2
Stephen23
Stephen23 2021년 2월 19일
편집: Stephen23 2021년 2월 19일
Original question by Steveb Thies retrieved from Google Cache:
"Only integer values ?"
Hello Matlab community,
i created a script and everything works but i want to add that the script accepts also only integer values for m. How can i do this?
i = 0;
m = input('please number: ','s');
while isnan (str2double(m)) == true || str2double(m)<0
m = input('please again: ','s');
if isnan (str2double(m)) == true || str2double(m)<0
i = i+1;
if i == 4
return
end
else
break
end
end
Rena Berman
Rena Berman 2021년 5월 6일
(Answers Dev) Restored edit

댓글을 달려면 로그인하십시오.

답변 (2개)

Les Beckham
Les Beckham 2021년 2월 19일
To test for integer values of double numbers (doubles are the default numeric type in Matlab), I would suggest using mod(m,1).
So, in your case, replace "isnan (str2double(m)) == true || str2double(m)<0" with "mod(m,1) ~= 0" to detect a number that is not an integer.
Of course your code does nothing whether the test passes or fails so I'm not sure what the point is. I assume you have left some things out?

Walter Roberson
Walter Roberson 2021년 2월 19일
positive integers have the property that all of their characters are one of '0','1','2','3','4','5','6','7','8','9', or '+'... unless you want to accept exponential notation as well, in which case the characters might also be 'd', 'D', 'e', 'E', '.', or '-' .
  댓글 수: 1
Les Beckham
Les Beckham 2021년 2월 19일
Your answer made me notice that Steven was using the 's' option in his input call. I had missed that before.
Perhaps remove the 's' option and use mod as I suggested? Still, the example code does nothing with the result, so it is difficult to tell what the desired behavior is.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by