I use the uitab and uitabgroup() function for organizing lots of plots into tabs and subtabs. The issue is that bode and frequency-response plots don't work with them.
This is how you'd normally create a tab and plot on it:
figure()
th = uitab('Title','Tab 1');
axes('Parent',th);
plot(rand(10,3))
Doing the same for a bode plot would look like this:
figure()
th = uitab('Title','Tab 1');
ah = axes('Parent',th);
bode(tf(1,[1 1]))
The problem is this generates the following error:
Error using DynamicSystem/bode (line 96)
The name 'Visible' is not an accessible property for an instance of class
'matlab.ui.container.Tab'.
There are heavy-handed ways of creating bode plots in new figures and then copying them over to the tab but that only partly works. Is there any way around this issue? Maybe a way to add the 'Visible' property to the Tab class?

 採用された回答

William Graves
William Graves 2017 年 1 月 11 日
編集済み: William Graves 2017 年 1 月 11 日

2 投票

I actually just solved this myself. While bode plots don't like being placed on uitab, they're fine when put on uipanels. The solution is to place a uipanel on the uitab and then create the bode plot on the uipanel.
figure()
th = uitab();
u = uipanel('Parent',th);
axes('Parent',u)
bode(tf(1,[1 1]))
I'd still consider the initial issue a bug that should be fixed by MathWorks. In the meantime, this workaround isn't too bad.

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Get Started with Control System Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by