2016-08-18 66 views
0

我有一些使用八度的經驗。但是,matlab的行爲非常不同。 我有這個簡單的腳本:matlab腳本不接受函數?

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

a=test(10); 

當我運行它(綠色「play'箭頭在GUI),它給了我下面的錯誤:

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。你有三個以下解決方案:

要麼做一個主要的功能(這是在同一個M文件)

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


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

2-或者功能保存爲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不應該。是否有理由? –