在 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 中运行脚本命令的主要内容,如果未能解决你的问题,请参考以下文章

matlab,简述脚本M文件和函数M文件的区别?

matlab 怎样运行m文件?

什么是脚本文件?MATLAB中的M文件脚本文件是什么意思?

matlab中的script file是干啥用的?

如何在matlab中创建m文件

Matlab 错误:关于 'compile_mex;'命令