在uitabgroup中绘图(matlab GUI)

时间:2016-02-08 16:03:39

标签: matlab plot matlab-guide

假设我有3个功能

  1. F(X)= 2×+ 4
  2. H(X)= 2X + 5
  3. G(X)= 2×6 +
  4. 我有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); 
    

    我的问题:

    1. 如何同时为每个uitab绘制图形?

    2. 如何确保当用户更改输入时,新图表会显示而不会与旧图表重叠?

    3. 谢谢!

1 个答案:

答案 0 :(得分:0)

对于每个标签,您需要显式创建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);