Matlab有一个叫做的函数setappdata.从本书(关于缓存的章节)我已经了解到缓存数据可以使用setappdata神秘对象0 存储,如下所示:
setappdata(0,'CachedData',[0 1 2 3]) % I am caching vector [0 1 2 3]
Run Code Online (Sandbox Code Playgroud)
问题是,对象0是什么?
您已经发现了Matlab根对象,0.
所有matlab GUI对象都包含handles- 包括root,即0.
在R2014b之前,所有图形句柄都由似乎是数字的表示,但实际上是指向图形句柄的指针.
您会发现您创建的所有GUI都能够存储appdata.
在0对象中设置数据 - >这意味着您可以从任何地方获取数据(但也可以从任何地方覆盖......) - >因此最好存储链接到您的应用程序的数据:
hFig = figure;
setappdata ( hFig, 'variableName', yourVariable )
Run Code Online (Sandbox Code Playgroud)
要获取您使用的数据:
cache = getappdata(0,'CashedData')
% or post R2014b you can use:
cache = getappdata(groot,'CashedData')
Run Code Online (Sandbox Code Playgroud)