Matlab:如何在工作空间中使用变量覆盖内部函数

时间:2016-11-16 08:20:55

标签: matlab workspace

我想知道如何在运行m文件时使用Matlab R2015a工作空间中定义的变量覆盖内部函数。

我的意思是如果我定义:

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将输入作为内置函数。

您知道如何解决此问题(不更改变量名称)吗?

感谢。

2 个答案:

答案 0 :(得分:0)

指定确切的文件名,包含扩展名。 最好使用接受输入的变量。

function test
    fun1
    clear input
    data=load('test.mat');
    plot(data.input)
    return
end   
function fun1
    input=1:10;
    save('test.mat','input')
    return
end

如果您想使用相同的数据结构,可以使用:

data.input=1:10;
save('test.mat','-struct','data')

答案 1 :(得分:0)

解决方案在@ Dev-iL

的评论中给出

最好不要将变量生成到工作空间中的存在变量中。

所以这将使上面的简单例子起作用:

A=load('test.mat');
input=A.input