Matlab:如何在工作区中用变量覆盖内部函数
Matlab: How to override intrinsic function with variable in 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 将输入作为其内置函数。
你知道如何解决这个问题(不改变变量名)吗?
谢谢。
指定准确的文件名,包括扩展名。
最好使用接受输入的变量。
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')
解决方案在@Dev-iL的评论中给出
最好不要将变量生成到工作区中的现有变量中。
所以这将使上面的简单示例起作用:
A=load('test.mat');
input=A.input
我想知道如何在 运行 生成 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 将输入作为其内置函数。
你知道如何解决这个问题(不改变变量名)吗?
谢谢。
指定准确的文件名,包括扩展名。 最好使用接受输入的变量。
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')
解决方案在@Dev-iL的评论中给出
最好不要将变量生成到工作区中的现有变量中。
所以这将使上面的简单示例起作用:
A=load('test.mat');
input=A.input