这可能是一个非常基本的问题,但我没能找到答案。
我正在尝试运行一个matlab代码,该代码有两个参数传递给它:
1.现有matlab代码的名称
2.一个整数
这将是我在Matlab-的命令窗口中运行的命令
>> auto_caller mytest.m 10
这里auto_caller是主代码,它应该执行文件mytest.m10次。
这就是我尝试的
function [arguments] = auto_caller(filename, iterations)
for i = 0 : str2num(iterations)
filename
end
end
但当我运行它时,输出只是-
mytest.m
mytest.m
mytest.m
mytest.m
mytest.m
mytest.m
mytest.m
mytest.m
mytest.m
mytest.m
有人能帮我解决这个问题吗
谢谢,
Shreedhar
与其传递包含函数的matlab源文件的名称,不如传递一个函数句柄:
auto_caller @mytest 10
这与Mathworks提供的优化算法接受目标函数、GUI小部件接受事件回调函数等的方式相同。
一个简单的解决方案:
使用run(scriptname_here)
您可以使用eval
函数调用文件
function runScript(file,n)
for i = 1:n
eval(strrep(file,'.m',''))
end
end