确定哪些函数用于生成hggroup ?

2视图(30天)
大家好,
有没有一种方法,以确定哪些功能(例如,箭袋(),散射(),轮廓(),等等)被用来生成一个特定hggroup吗?例如,假设我有以下:
%画一些对象
f =图();
dat =兰德(20,4);
q =颤抖(dat (: 1), dat (:, 2), dat (:, 3), dat (:, 4), 0,“蓝”);
持有;
s =散射(dat (: 1), dat (:, 2), 100 * dat (:, 3),“红色”,“填充”);
[~ c] =轮廓(dat 5);
%得到这些对象
obj = findobj (gca),“深度”, 1“不是”,“类型”,“轴”);
objTypes =得到(obj,“类型”)
所有的“objTypes”是“hggroup”的价值观。有办法区分这些不同的对象?
目前,我只是检查我知道存在于属性,例如,一个箭袋对象而不是散射物体,来推断函数用于生成。
quiverCorrect = obj (isprop (obj,“AutoScaleFactor”)= =,%返回true
scatterCorrect = obj (isprop (obj,“SizeData”)= =,%返回true
contourCorrect = obj (isprop (obj,“ContourMatrix”)= = c,%返回true
但是,我想有一个更优雅和简单的方法。我检查孩子们的每一个对象,但随着子对象只是线条和补丁,他们似乎并不提供洞察力。
你可以提供的任何帮助,我们将不胜感激。

答案(1)

1月
1月 2014年2月21日
最直接的方法是通过你的标记成:添加这些信息
dat =兰德(20,4);
q =颤抖(dat (: 1), dat (:, 2), dat (:, 3), dat (:, 4), 0,“蓝”);
setappdata (q,“CreatorFunction”,“颤”);
你可以创建函数自动:
函数H = quiverX(变长度输入宗量)
H =颤抖(变长度输入宗量{:});
setappdata (H,“CreatorFunction”,“颤”);
我犹豫地重用原来的名字 箭袋 一般与内置函数避免碰撞。但实际上这样做,应该没有问题,即使外部代码调用修改函数而不需要更改代码。
1评论
马特Kindig
马特Kindig 2014年2月21日
好主意设置这个信息的时候反对创造。它也考虑设置“标签”或“用户数据”字段相关的东西。
不过,我真正在寻找的方法创建的对象。例如,假设我提供的只是一个Matlab已经创建的图。我能区分各种hggroups呢?

登录置评。

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!