我想知道如何在運行m文件時用Matlab R2015a中的工作空間中定義的變量覆蓋內部函數。Matlab:如何在工作空間中用變量覆蓋內部函數
我的意思是,如果我定義:
function test
fun1
clear input
load test
plot(input)
return
function fun1
input=1:10;
save('test.mat','input')
return
,我跑的測試,然後我得到:
Error using input
Not enough input arguments.
Error in test (line 8)
plot(input)
Matlab的正在輸入作爲其內置的功能。
你知道如何解決這個問題嗎(不改變變量名稱)?
謝謝。
你不應該覆蓋內置的功能。 (爲了避免這種錯誤) – obchardon
但是,如果您創建一個變量或一個新的.m文件作爲內置函數的完全相同的名稱,則此內置函數將被「覆蓋」。 – obchardon
@obchardon我不同意。如果你知道自己在做什麼,那麼這樣做絕對沒有問題 - 例如,爲自定義類('plus()'等)重載操作符時。 MATLAB甚至提供['builtin'](https://www.mathworks.com/help/matlab/ref/builtin.html)函數(「_Execute內置函數來自重載方法_」),以便在需要時調用原始版本。 || cardogar - 使用'load'「錯誤地生成變量」是個不好的做法。一個更好的方法是'A = load(...); var = A.someName'這對mlint和人類來說都不那麼令人困惑。 –