2015-11-03 346 views
-1

如何在matlab中定義函數後編寫代碼?如何在matlab中定義函數後編寫代碼?

我會分開他們,但我必須提交我的作業整個,一個.m文件。

它給出了以下錯誤「此語句不在任何函數內。」。我在網上嘗試了答案,但它不會工作。

我的.m文件從定義函數開始並在結束語句之後,定義之後開始寫我的代碼。我使用我在上面定義的函數代碼

非常感謝。

+0

請將您的代碼添加爲[mcve],以便我們可以看到它出錯的位置。儘管沒有看到你的代碼,但我已經可以說你必須在** function函數和它的相關'end'之間寫**。結束後的所有內容都不屬於定義,因爲您已*結束了該定義。 – Adriaan

+0

請參閱:[本地函數](http://www.mathworks.com/help/matlab/matlab_prog/local-functions.html) – excaza

回答

2

你應該這樣做。

只需將您的'普通'腳本包裝在一個函數中即可。然後,您可以在文件末尾聲明其他函數。例如,如果您的文件被調用myHomework.m

function myHomework() % Should match the filename! 
    n=6; 
    if n>5 
     x = someFunction(n); 
     disp(x); 
    end 
end % Although this 'end' can usually be omitted, not now! 

function out=someFunction(in) 
    ... 
end 
+0

外部可用函數的文件名和函數名稱必須匹配。 – Daniel

+1

'@Daniel我會編輯它,謝謝。有時很容易忘記明顯的。 – Sanchises

+1

只要文件中沒有任何函數具有它們,並且沒有[嵌套函數],函數'end'語句就可以省略(http://www.mathworks.com/help/matlab/matlab_prog/nested-functions。 HTML)。儘管如此,我更願意將它們包括在內以便閱讀。 – excaza