策划在matlab应用程序面板不更新标记标签但重叠

20视图(30天)
我想画一个预览的信号在uipanel matlab应用。发生了什么是你第一次预览,一切工作正常由于没有预先存在的情节。第二次你预览图更新但轴标记标签不正确,也就是说,它既保持了旧并显示新的重叠。
预览是通过按钮和情节使用uipanel轴。
这是一个介绍发生了什么:
第一次预览选择信号和应用- >
结果很好- >
现在我选择不同的信号用不同的轴长度(300年而不是1000年)和预览- >
正如你所看到的情节很好就行,但轴重叠/更新/不正确呈现。
这基本上是应用程序中的代码更新和模拟底层仿真软件(这适用)并调用外部函数在一个类来显示预览。金宝app 本节并不是真正的问题所在,我分享只是断章取义。
%按钮推功能:InputApplyButton
函数InputApplyButtonPushed(应用程序、事件)
%收集值从gui
app.inputType = app.InputshapeDropDown.Value;
app.inputPanelAxes =轴(app.InputPreviewPanel);
开关真正的
情况下比较字符串(app.inputType“斜坡”)
%坡道参数
set_param (“TCASim / InputType”,“价值”,“3”);%开关
set_param (“TCASim /斜坡”,“坡”num2str (app.SlopeEditField.Value));
set_param (“TCASim /斜坡”,“InitialOutput”num2str (app.InitialOutputEditField.Value));
app.inPrev = toleranceChain.inputPreview (app.inputType app.inputPanelAxes,
app.SlopeEditField.Value app.InitialOutputEditField.Value);
情况下比较字符串(app.inputType“唧唧喳喳”)
%啁啾参数
set_param (“TCASim / InputType”,“价值”,' 2 ');%开关
set_param (TCASim /唧唧喳喳的,“f1”num2str (app.InitialFrequencyEditField.Value));
set_param (TCASim /唧唧喳喳的,“T”num2str (app.TargetTimeEditField.Value));
set_param (TCASim /唧唧喳喳的,“f2”num2str (app.FrequencyatTargetTimeEditField.Value));
set_param (“TCASim / ChirpGain”,“获得”num2str (app.ChirpAmplitudeEditField.Value));
app.inPrev = toleranceChain.inputPreview (app.inputType app.inputPanelAxes,
app.InitialFrequencyEditField.Value、app.TargetTimeEditField.Value app.FrequencyatTargetTimeEditField.Value,
app.ChirpAmplitudeEditField.Value);
情况下比较字符串(app.inputType“其他”)
%其他参数
set_param (“TCASim / InputType”,“价值”,' 1 ');%开关
set_param (‘TCASim /其它,“波形”,app.WaveformDropDown.Value);
set_param (‘TCASim /其它,“振幅”num2str (app.AmplitudeEditField.Value));
set_param (‘TCASim /其它,“频率”num2str (app.FrequencyEditField.Value));
app.inPrev = toleranceChain.inputPreview (app.inputType app.inputPanelAxes,
app.WaveformDropDown.Value、app.AmplitudeEditField.Value app.FrequencyEditField.Value);
结束
app.InputPreviewPlaceholder.Visible =“关闭”;
app.FullScreenInputPreview.Enable =“上”;
结束
这是实际的预览功能:
函数prev = inputPreview (inputType plotAxes变长度输入宗量)
prevTime = 1:0.1:100;
开关真正的
情况下比较字符串(inputType“斜坡”)
% 1是斜坡,2是初始输出
y = prevTime *变长度输入宗量{1}+变长度输入宗量{2};
prev =情节(plotAxes y);
情况下比较字符串(inputType“唧唧喳喳”)
% 1是初始频率,2是目标时间,3是频率
%的目标蒂姆,4是振幅/收益
y =变长度输入宗量{4}*唧唧声(0:变长度输入宗量{2},变长度输入宗量{1},变长度输入宗量{2},变长度输入宗量{3});
prev =情节(plotAxes y);
情况下比较字符串(inputType“其他”)
% 1是波形,2是振幅,3是频率
开关真正的
情况下比较字符串(变长度输入宗量{1},的正弦)
y =变长度输入宗量{2}* sin(变长度输入宗量{3}* prevTime);
prev =情节(plotAxes y);
情况下比较字符串(变长度输入宗量{1},“广场”)
y =变长度输入宗量{2}*广场(变长度输入宗量{3}* prevTime);
prev =情节(plotAxes y);
情况下比较字符串(变长度输入宗量{1},“锯齿”)
y =变长度输入宗量{2}*锯齿(变长度输入宗量{3}* prevTime);
prev =情节(plotAxes y);
情况下比较字符串(变长度输入宗量{1},“随机”)
y =变长度输入宗量{2}*兰德(1,长度(1:变长度输入宗量{3}:100));
prev =情节(plotAxes y);
结束
结束
结束
这就是我已经尝试:
  • cla重置及其组合
  • 设置(…,'XTicks',{}) and all its combinations
  • 集(…,XTicksLabels,{})及其组合
  • drawnow
  • refreshappdata
  • refreshdata
我失去了无数个小时,任何想法真的会有所帮助。我也如果需要改变整个绘图系统。
更新: 我也有同样的设置,在相同的应用程序使用相同的代码而不是放在一个标签组和它的工作原理完全没有问题。我困惑。

答案(0)

类别

找到更多的在图形性能帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!