如何从Matlab函数中将特定值保存到工作区?

时间:2014-10-14 13:22:02

标签: matlab

我有一个m文件,其中包含多个文件,我知道在使用函数时,这些函数中使用的变量不会保存到Matlab中的工作区。我只需要在Matlab中保存一个单独的变量。有什么方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

以下两种方法可以将变量保存在基本工作区中,即使用assigninsetappdata以及getappdata

让我们创建一个虚拟函数来测试它(不要指定它,因为它会导致麻烦):

function Test_Assignin(~) %// Dummy function

clear
clc

A =rand(10);

assignin('base','AinWorkspace',A); %/ Assign the variable A (local to the function) to the variable named 'AinWorkspace' in the 'base' workspace, which you can access after running the function.

B = A/2; %// Generate other variable

setappdata(0,'B',B); %// use setappdata to make the variable available to the base workspace (hence the 0 at the beginning), and in your command window use getappdata. (See below).
end

然后,如果你想在工作区中访问B,你可以像这样使用getappdata:

BinWorkspace = getappdata(0,'B') %// Use the same name as in the function/call to setappdata.

请注意,setappdata / getappdata在制作调用外部函数的GUI时非常有用;它允许在回调之间轻松共享数据。

希望有所帮助!

答案 1 :(得分:0)

您拥有的一个选项是声明特定变量global

function foo(k)
    var1=2*k;
    global var1;
end