从函数

时间:2016-01-28 12:12:46

标签: matlab

当我运行一个函数时,我没有得到所有变量 工作空间。当我设置断点时,我只能得到断点 工作区中的变量。因此,如何在不设置断点的情况下在工作空间中获取变量?

2 个答案:

答案 0 :(得分:5)

虽然xargs诀窍在某些情况下很方便,但通常不应该养成非明确嘲笑的习惯。跨命名空间的变量。更明显的第一种方法应该是specify outputs to your function,这是基本的MATLAB语法。

如果输出数量较少,则可以单独指定。例如:

assignin

如果你有很多输出,一旦接近将所需的输出存储到structurecell array中,那么你输出一个变量而不必指定每个输出。调整上面的例子:

function [c, d] = trialcode(a, b)
% Simple summation
c = a + b;
% Simple product
d = a * b;
end

答案 1 :(得分:3)

您可以使用

assignin('base','variablename',value);

将变量从Function-Workspace写入基础工作区 当您使用断点时,您将看到执行停止的函数或脚本的工作区。您也可以在编辑器中选择要在调试模式下查看的工作区(堆栈) 如果要将整个Function-Workspace写入基础工作区(不建议使用封装),可以使用

vars=whos;
for k=1:length(vars)
   assignin('base', vars(k).name, eval(vars(k).name));
end