我想知道如何在运行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和人类来说都不那么令人困惑。 –