2013-11-14 2 views
0

이 방법을 만드는 :여러 조건 (정수 결과 만) 문</p> <p>예를 들어 방정식의 정수 결과를 확인하는 경우

For n=1:240 
a=a+1 
b=a/20 

%try number 1 
If b==1 | 2 | 3 | ... | 12; 
c=c+1 %does not work 
End 

%try number 2 
If b==isinteger(b); 
c=c+1 %does not work 
End 

%try number 3 
d=isinteger(b); 
If d==1; 
c=c+1 %does not work 
End 
End 

나는 matlab에 단지 새로운 오전 그래서의 단순 변명 질문. 당신이 할 수있는

+0

'if','for' 및'end'가 모두 소문자로 쓰여진 부분에 대한 올바른 코드를 작성하십시오. 그리고 모든 코드를 올바르게 들여 줘야 Matlab의 편집자가 자동으로이 작업을 수행 할 수 있습니다. –

답변

0

한 가지,

abs(b-round(b))<1e-12 

또는 유사하다 b 정수의 1e-12 내에 있는지 여부를 테스트한다.

당신이 많은 숫자 b을 테스트하려면

, 당신은 벡터 b을 가질 수 있습니다, 다음

b(abs(b-round(b))<1e-12) 

는 정수 b의 요소를 반환해야합니다.

isinteger이라는 Matlab 명령이 있습니다. 사용하지 마십시오. 어떤 변수 유형이 무엇인지 판단하기 위해 정수와 다른 데이터 유형 인 복식을 사용하게됩니다. 알고 있어야 할 것.

+0

"isinteger"를 의미 할 때 나는 정수형을 썼다. 당신은 코드 에서뿐만 아니라 올바른 것입니다. 그것은 작동합니다! – user2993881

+0

그러나 첫 번째 옵션이 작동하지 않은 이유를 이해할 수 없습니다 (여러 OR이있는 옵션). – user2993881

+0

@ user2993881 - MATLAB에서는'b == 1 || b == 2 || ...하지만'any (b == (1:12)) '를 할 수 있습니다. – chappjc