在基础工作空间中创建变量 - 来自函数调用脚本

时间:2015-08-06 08:03:06

标签: matlab

在我的loadsignals.m脚本中有一个运行脚本test.m的函数,用于在基础工作区中创建变量。

为什么不在基础工作区中创建变量?

如何在基础工作区中创建变量我不想使用assignin函数?

loadsignals.m: -

function loadSignals(VarName)

  ... do some work ...

  run(test);

end

test.m: -

a = uint8(10);
b = uint8(20);
c = uint16(0); 

1 个答案:

答案 0 :(得分:2)

从函数调用脚本时,脚本使用函数工作区。因此,创建的变量不会存储在基本工作空间中,除非您明确地执行此操作。如前所述,可以使用assignin完成此操作。

不使用assignin的一个原因可能是您不想修改脚本test.m本身。为避免这种情况,您可以使用evalin在基础工作区中执行test.m。然后变量也会存储在基础工作区中。

evalin('base','run(''test.m'')');

请注意,run(test)可能无效,因为文件test.m是脚本而不是函数。您可以改用run('test.m')。要在字符串中包含',您需要将其编写两次'',如evalin的第二个参数所示。