Using findjobj in R2013a
显示 更早的评论
I am trying to use Yair's FEX:findjobj in R2013a on Linux to basically do what he did in his blog post
desktop = com.mathworks.mde.desk.MLDesktop.getInstance;
jEditor = desktop.getGroupContainer('Editor').getTopLevelAncestor;
jEditor.findjobj
This causes MATLAB to become unresponsive and basically hang. I unfortunately don't have any other versions of MATLAB currently. Can anyone reproduce this?
采纳的回答
更多回答(2 个)
per isakson
2013-9-27
编辑:per isakson
2013-9-27
It seems to work fine here: R2013a, 64bit, Win7
>> desktop = com.mathworks.mde.desk.MLDesktop.getInstance;
jEditor = desktop.getGroupContainer('Editor').getTopLevelAncestor;
jEditor.findjobj
ans =
handle: 1-by-1620
>> version
ans =
8.1.0.604 (R2013a)
and the GUI is responsive
Yair Altman
2013-10-5
1 个投票
You only need to use findjobj without an output (result assignment) value if you want to see an interactive GUI display of all the objects in your analyzed object (in this case Desktop). If your Desktop contains numerous panels/windows/docked figures etc., then there might be so many descendant objects that it would take a long time (and large amounts of memory) to process, which might explain what you see.
If you only need findjobj to get the underlying reference of something, then assign a result (e.g., something=findjobj(...); ) and this should solve the issue. If you want to see the interactive GUI, then consider reducing your Desktop's complexity by closing some panels, or maybe start Matlab when it has access to more physical memory (to prevent virtual memory usage and thrashing).
3 个评论
Daniel Shub
2013-10-6
Yair Altman
2013-10-15
Try setting the desktop layout to the default and retest. Perhaps findjobj gets stuck in some endless loop if id can't find one of the standard Desktop components. If this is the case, you can start peeling off Desktop panels one by one until you get to the culprit.
Daniel Shub
2013-10-16
类别
在 帮助中心 和 File Exchange 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!