2016-08-18 4 views
0

나는 옥타브를 사용해 본 경험이있다. 그러나, matlab은 매우 다르게 작동합니다. 나는이 간단한 스크립트를 가지고 :matlab 스크립트는 함수를 받아들이지 않습니까?

function y=test(x) 
    y=x*10; 
end 

a=test(10); 

나는 그것이 나에게 다음과 같은 오류 제공 그것 (GUI의 그 녹색 'play' 화살표)를 실행 :

Error: File: TESTFILE.m Line: 5 Column: 1 
This statement is not inside any function. 
(It follows the END that terminates the definition of the function "bla".) 

문제점은 무엇입니까? 함수 안에 있지 않은 코드 옆에 내 자신의 함수를 사용하는 scipt를 실행할 수 없습니까?

답변

1

코드 스타일은 Python에서도 작동하지만 MATLAB에서는 작동하지 않습니다. 오류는 대답 This statement is not inside any function을 제공합니다. 당신은 다음 세 가지 솔루션이 있습니다

1 중 하나가 (이 같은 m-파일에) 주요 기능을

2

function a=main() 
    a=test(10); 
end 


function y=test(x) 
    y=x*10; 
end 
또는 test.m으로 기능을 저장하고 마지막을 사용 다른 스크립트 또는 명령 행에서 함수를 호출하는 행.

3 또한 기능 (같은 m-파일의 모든) 중첩 된 수 있습니다

function a=main() 
    a=test(10); 

    function y=test(x) 
     y=x*10; 
    end 
end 

매우 유용한 문서와 예제 here 찾기를.

+0

옵션 1이 작동하지 않습니다. 입력 인수가 충분하지 않습니다. mytest (행 2)의 오류 y = x * 10; 출력이 보이지 않기 때문에 옵션 3은 작동 중입니다 ... 매우 불완전하지만 –

+0

입니다. 'a'를 출력으로 추가하고 원하는 경우 입력하십시오. 이 함수는 입력 인수가 없지만 직접 추가 할 수 있습니다. 그것의 현재 양식에 의해 100 % 작동합니다. – NKN

+0

그것이 언제나 matlab에 있었습니까? 옥타브 내 코드를 받아들이고 나는 왜 matlab에해서는 안되는 지 알 수 없다. 이유가 있습니까? –

관련 문제