在我的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);
答案 0 :(得分:2)
从函数调用脚本时,脚本使用函数工作区。因此,创建的变量不会存储在基本工作空间中,除非您明确地执行此操作。如前所述,可以使用assignin
完成此操作。
不使用assignin
的一个原因可能是您不想修改脚本test.m
本身。为避免这种情况,您可以使用evalin
在基础工作区中执行test.m
。然后变量也会存储在基础工作区中。
evalin('base','run(''test.m'')');
请注意,run(test)
可能无效,因为文件test.m
是脚本而不是函数。您可以改用run('test.m')
。要在字符串中包含'
,您需要将其编写两次''
,如evalin
的第二个参数所示。