2010-02-08 7 views
11

Matlab에서 줄 끝 쉼표는 무엇을합니까? 필자가 해봤 던 몇 가지 작은 테스트에서 그들은 코드가 다른 것처럼 보이게 만들지 않았다. 나는 그들이이 코드에서 온통 끝났기 때문에 내가 쓰지 않았지만 (유지해야 함) 알고 싶다. 무슨 뜻인지의Matlab에서 줄 끝 쉼표는 무엇을합니까?

예 :

if nargin<1, 
    % code 
end 

if isError, 
    % code 
end 

try, 
    % code 
    while 1, 
     % even more code 
    end 
catch, 
    % code 
end 

답변

15

documentation for the comma character in MATLAB에 따라, 그 기능 중 하나는 라인 내에서 문을 분리하는 것이다. 한 행에 하나의 명령문 만 있으면 쉼표가 필요하지 않습니다. 나는 사람들이 그런 식으로 코드를 작성한다는 것을 알고 있지만, 거기서 그것을보고 싶지 않습니다.

1

내가 MATLAB에서 쉼표 그것은 명령을 분리 C.에서 세미콜론 같은 생각, 그래서 당신은 쉼표로 구분 한 줄에 여러 명령을 넣을 수 있습니다.

프로그램 작성 방법에 따라 쉼표가 아무런 효과가 없다고 생각합니다.

4

밀접하게 코딩 된 m 파일 (예 : 내장 된 MATLAB 함수)을 읽으면 한 줄에 작성된 if ... end 구문의 변형을 발견하게됩니다. 예를 들어
x < 인 경우 disp ('imaginary'); end
x < 0과 disp (...) 사이의 쉼표에 주목하십시오. 분명히 쉼표는 MATLAB 해석기에게 조건부 테스트가 끝났음을 알립니다. 내 지식에 의하면 이것은 문장 (OK, 문장의 일부)이 쉼표로 끝나는 곳일뿐입니다. 진실한 신자들이 주저없이 사용하게되는 것은 그 단조 중 하나 일뿐입니다.

http://web.cecs.pdx.edu/~gerry/MATLAB/programming/basics.html

+0

을하지만 줄 바꿈이 있다면, 그것은 올바른 단지 불필요한입니까? –

+0

@ 벤자민 예. @Albert는 가끔'try, catch'와'for, end'도 같은 줄에 표시합니다. – KitsuneYMG

8

다른 사람들도 지적했듯이 줄 끝의 쉼표는 필요하지 않습니다. 그것들은 실제로 같은 줄에있는 명령문을 분리하기위한 것입니다. mlint 당신이 그것을 필요없이 하나를 사용하는 경우 편집기는 심지어 당신에게 경고를 줄 것이다 :

enter image description here

>> mlint comma_test.m 
L 1 (C 4): Extra comma is unnecessary. 
+2

하하, Matlab 코드를 편집 할 때'vim '을 사용하는 것이 좋을 것 같아요. MLINT를 사용할 무언가가있었습니다. 지금 시도 해봐야 할 것 같습니다. –

관련 문제