在 Matlab 中运行脚本命令
Posted
技术标签:
【中文标题】在 Matlab 中运行脚本命令【英文标题】:run script command in Matlab 【发布时间】:2017-03-15 10:49:26 【问题描述】:我正在另一个目录中运行脚本。
假设我有以下代码:
arr = [10;20;30];
run(script); % script= path to the script file + scriptfile.mat ..
x = arr(2);
它给了我以下错误: “double”类型的输入参数的未定义函数“arr”。
调试代码后发现run(script)..运行脚本然后清除所有变量..如arr。
有没有办法让运行命令不清除所有变量..
编辑:以下是原始代码..
xValues =[2;4;6];
yValues =[10;15;20;30;40];
for var1 =1:size(xValues,1)
results =[];
for var2 =1: size(yValues,1)
run(strcat('C:\Users\as\Desktop\study',num2str(xValues(var1)),'folder\',num2str(yValues(var2)),'folder\file1.m'));
results(var2,1) = yValues(var2);
end
end
谢谢,
【问题讨论】:
您可以确定script
在第二次调用arr
之前已经完成运行了吗?
您确定没有在您的脚本内部调用clear
命令吗?我试图复制您的问题,但使用一些虚拟脚本似乎一切正常,并且在使用run
命令执行脚本后,arr
未被清除。
您好,您可以向我们展示您尝试执行的完整脚本吗?
@Adiel 是的,因为命令也在脚本中排序..
@UJIN 是的,我确定
【参考方案1】:
这是一个示例,删除脚本文件中的clear
命令:
testing.m
arr = [10;20;30];
run('ScriptFile.m')
x = arr(2);
ScriptFile.m
disp('Hello World');
命令窗口
Hello World
实施后x
持有编号20。
【讨论】:
我试过你的例子并且成功了!但我不知道为什么我的代码没有!【参考方案2】:很明显,您的脚本中的所有内容都在做我认为的混乱。
至于如何避免:
-
只需将其删除。这通常是最简单、最好的解决方案。
将文件写入磁盘,运行脚本,从磁盘加载。您需要一个硬编码的文件名。
创建具有持久单元格数组的“data_holding_function”,将数据加载到那里,然后在脚本之后将其恢复。您可以让函数同时执行加载(当您有输入时)和卸载(当您没有输入时)。
【讨论】:
谢谢,我试试这个方法以上是关于在 Matlab 中运行脚本命令的主要内容,如果未能解决你的问题,请参考以下文章