【发布时间】:2017-10-02 16:14:30
【问题描述】:
我一直在尝试使用 Guide 创建一个 MATLAB GUI:
i) 具有一个函数,该函数接受输入参数(温度、超导间隙能量、展宽参数)并输出图 - 显示超导能隙的状态密度图。
注意:此功能涉及数值二重积分,因此不能使用滑块直接更改参数。为了研究不同参数对曲线的变化,每次输入新参数时,函数再次积分,并在同一轴内生成一条新曲线。
ii) GUI 有 4 组输入字段,因此可以在给定时间在同一轴内绘制 4 条曲线以进行比较。
我使用了以下代码:
handles.P1=plot(handles.dIdV,bias1,cond1,'r','linewidth',2);
%P1 = plot(handles.dIdV,bias1,cond1,'r','linewidth',2);
hold on
%plot(x,data(:,2),'b','linewidth',2)
%scatter(E,XDOS)
%xlim([min(bias) max(bias)])
%title(nem)
(请不要对 cmets 感到困惑。“cond1”是参数 set1 的积分结果,这是针对数组“bias”绘制的。因此,DOS(偏差函数、温度、delta-gap 值, 等) 被整合到每个 'bias' 值并存储在 'cond1' 中,然后根据该 'bias' 值绘制。)
为了清除这一点,我写道:
% --- Executes on button press in clear1.
function clear1_Callback(hObject, eventdata, handles)
% hObject handle to clear1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles.temp1=0;
handles.delta1=0;
handles.tao1=0;
handles.vmod1=0;
handles.val1=0;
hold off
即所有参数清零,保持功能关闭。
同一段代码已针对 4 条不同的曲线编写了 4 次。 因此,当给出绘图命令并且按下清除按钮时,每条曲线都有一个保持功能,“保持”应该关闭。 例如曲线 1 是使用参数集 1 生成的。按 clear1 按钮应该关闭 curve1 的保持,以便可以将新值放入参数集 1,并且可以在与 curve2、curve3 和 curve4 相同的轴上绘制新的 curve1,而不会影响这些其他曲线。
'hold on' 和 'hold off' 线的执行存在问题,因为我无法一次删除一条曲线并将其替换为新曲线。
在我将新参数输入到任何句柄的那一刻,所有其他图都消失了。
我哪里出错了? 在 MATLAB 中是否可以用 hold on 一次替换单个轴上的一条曲线?
非常感谢。
【问题讨论】:
标签: matlab plot matlab-figure matlab-guide