在Matlab

时间:2017-03-15 10:49:27

标签: matlab matlab-compiler

我正在另一个目录中运行脚本。

假设我有以下代码:

arr = [10;20;30];
run(script);  % script= path to the script file + scriptfile.mat ..

x = arr(2);

它给了我以下错误: 未定义函数'arr'表示'double'类型的输入参数。

调试代码后,我发现run(脚本)..运行脚本然后清除所有变量..比如arr。

有没有办法让run命令不能清除所有变量..

编辑:以下是原始代码..

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

谢谢,

2 个答案:

答案 0 :(得分:1)

以下是脚本文件中的擦除clear命令示例:

<强> testing.m

arr = [10;20;30];
run('ScriptFile.m')
x = arr(2);

<强> ScriptFile.m

disp('Hello World');

命令窗口

Hello World

实施后x保留号码 20

答案 1 :(得分:1)

很明显,你的脚本里面的所有内容都是我认为的混乱。

至于如何避免它:

  1. 只需将其删除即可。这通常是最简单和最好的解决方案。
  2. 将文件写入磁盘,运行脚本,从磁盘加载。您需要一个硬编码的文件名。
  3. 创建具有持久性单元阵列的“data_holding_function”,将数据加载到那里,然后在脚本之后将其恢复。您可以使该功能同时执行加载(当您有一些输入时)和卸载(当您没有时)。