在 uitabgroup 中绘图(matlab GUI)
Plot in uitabgroup (matlab GUI)
假设我有 3 个函数
- f(x)=2x+4
- h(x)=2x+5
- g(x)=2x+6
我有 3 个属于每个功能的 uitab。
当用户输入 x 数据时,
e.g X=[1;2;3;4]
对于每个 uitab,我希望看到这样的内容:
第一个 uitab:
plot (X,2.*X+4);
第二个 uitab:
plot (X,2.*X+5);
第 3 个 uitab:
plot (X,2.*X+6);
我的问题:
如何同时绘制图表到每个uitab?
以及如何确保当用户更改输入时,将显示新图形而不与旧图形重叠?
谢谢!!
对于每个选项卡,您需要显式创建一个 axes
,然后将其指定为绘图的父级。
group = uitabgroup();
tab1 = uitab(group, 'Title', 'Tab1');
tab2 = uitab(group, 'Title', 'Tab2');
tab3 = uitab(group, 'Title', 'Tab3');
hax1 = axes('Parent', tab1);
hax2 = axes('Parent', tab2);
hax3 = axes('Parent', tab3);
plot1 = plot(X, 2.*X + 4, 'Parent', hax1);
plot2 = plot(X, 2.*X + 5, 'Parent', hax2);
plot3 = plot(X, 2.*X + 6, 'Parent', hax3);
然后当您更改 X 的值时,您可以显式更新这些图
set(plot1, 'XData', X, 'YData', 2.*X + 4);
set(plot2, 'XData', X, 'YData', 2.*X + 5);
set(plot3, 'XData', X, 'YData', 2.*X + 6);
假设我有 3 个函数
- f(x)=2x+4
- h(x)=2x+5
- g(x)=2x+6
我有 3 个属于每个功能的 uitab。
当用户输入 x 数据时,
e.g X=[1;2;3;4]
对于每个 uitab,我希望看到这样的内容:
第一个 uitab:
plot (X,2.*X+4);
第二个 uitab:
plot (X,2.*X+5);
第 3 个 uitab:
plot (X,2.*X+6);
我的问题:
如何同时绘制图表到每个uitab?
以及如何确保当用户更改输入时,将显示新图形而不与旧图形重叠?
谢谢!!
对于每个选项卡,您需要显式创建一个 axes
,然后将其指定为绘图的父级。
group = uitabgroup();
tab1 = uitab(group, 'Title', 'Tab1');
tab2 = uitab(group, 'Title', 'Tab2');
tab3 = uitab(group, 'Title', 'Tab3');
hax1 = axes('Parent', tab1);
hax2 = axes('Parent', tab2);
hax3 = axes('Parent', tab3);
plot1 = plot(X, 2.*X + 4, 'Parent', hax1);
plot2 = plot(X, 2.*X + 5, 'Parent', hax2);
plot3 = plot(X, 2.*X + 6, 'Parent', hax3);
然后当您更改 X 的值时,您可以显式更新这些图
set(plot1, 'XData', X, 'YData', 2.*X + 4);
set(plot2, 'XData', X, 'YData', 2.*X + 5);
set(plot3, 'XData', X, 'YData', 2.*X + 6);