我想有一個文件功能,並與少的代碼調用該函數,例如:如何把一個函數和它的調用放在一個文件中?
function foo()
...
end
foo()
我想保存這樣的代碼到文件(一個文件)命名爲「everything.m」然後在Matlab/Octave控制檯中輸入「everything」,我的函數foo
將被定義爲AND調用。
我想有一個文件功能,並與少的代碼調用該函數,例如:如何把一個函數和它的調用放在一個文件中?
function foo()
...
end
foo()
我想保存這樣的代碼到文件(一個文件)命名爲「everything.m」然後在Matlab/Octave控制檯中輸入「everything」,我的函數foo
將被定義爲AND調用。
在Matlab中,您不能混合使用腳本和函數。所以在你的情況下,爲了調用foo()你需要編寫另一個函數,否則matlab編譯器會報錯。
所以everything.m
應該有一個叫做everything
功能,在這裏你可以撥打foo()
從
也有同樣的問題在這裏
我想你可以在腳本中編寫代碼,然後用相同的函數名保存它。例如,如果你的函數是foo,那麼當你保存文件時,它的名字必須是:foo.m。從命令行調用foo執行該函數。如果只想在沒有輸入參數的情況下調用該函數,則必須在關鍵字「function」和「end」之間定義所需的所有變量。此外,只有當您的當前文件夾是保存該功能的文件夾時,才能成功調用該功能。如果您從另一個目錄調用該函數,則會出現錯誤。爲了讓這個功能「全局」工作,你應該把它添加到「matlab路徑」中。希望這可以幫助你一點。
常見的方式做這樣的事情是有一個劇本叫everything.m
% everything.m
foo();
和一個文件要能夠使用每個功能:
% foo.m
function foo()
...
end
執行everything.m
然後調用您想要調用的所有函數(以及您在此階段可能想要執行的任何其他任務)。具有Matlab路徑上的所有功能,意味着它們是「定義的」(可從Matlab命令提示符或其他函數內部訪問)。這是「Matlab的方式」 :)
注意,有可能有每個文件多個功能,
% bar.m
function bar()
otherFunction(); % WORKS OK
end
function otherFunction()
...
end
只有最上面的功能將在Matlab命令提示符下可見:
>> bar
>> % no error
>>
>> otherFunction
??? Undefined function or variable 'otherFunction'.
出了什麼問題兩個文件?或者你想在一個文件中有很多功能? – Dan 2013-04-10 09:57:18
丹是正確的,你可以在一個文件中保存多個功能。但請記住,您不能混合使用腳本和功能。所以在你的情況下,爲了調用foo(),你可能需要編寫另一個函數,否則matlab編譯器會報錯。 – entropiece 2013-04-10 09:59:52
@Dan,我想在一個文件中加入許多函數,並加上對其中一個函數的調用。 – greenoldman 2013-04-10 10:19:49