我有一个m文件,其中包含多个文件,我知道在使用函数时,这些函数中使用的变量不会保存到Matlab中的工作区。我只需要在Matlab中保存一个单独的变量。有什么方法可以做到这一点?
答案 0 :(得分:0)
以下两种方法可以将变量保存在基本工作区中,即使用assignin或setappdata以及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