UITABGOUP中的绘图(matlab GUI)

UITABGOUP中的绘图(matlab GUI),matlab,plot,matlab-guide,Matlab,Plot,Matlab Guide,假设我有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); 第三个uitab: plot (X,2.*X+6); 我的问题: 如何将图形同时绘制到每个uitab 以及如何确保当用户更改输入时,新图形将显示出来,并且不会与旧图形重叠

假设我有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); 
    
    第三个uitab:

    plot (X,2.*X+6); 
    
    我的问题:

  • 如何将图形同时绘制到每个uitab

  • 以及如何确保当用户更改输入时,新图形将显示出来,并且不会与旧图形重叠


  • 谢谢

    对于每个选项卡,您需要显式创建一个
    ,然后将其指定为绘图的父项

    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);