在Matlab中使用句柄0的对象

Ser*_*kov 4 matlab

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是什么?

mat*_*gui 8

您已经发现了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)

  • 是的`groot`是它的名字'r2014b`(它们本质上是同一个东西) (2认同)