Matlab图形界面
Matlab Gui interface
我正在尝试编写一个 matlab gui 代码,它将从 CSV 文件加载数据并绘制图形。每次,我都会通过单击加载数据按钮来加载数据,绘图应该会刷新并绘制新数据。我能够加载数据并绘制第一张图。但是,如果我第二次单击加载数据按钮,它会从不同的 CSV 文件加载数据,但它会绘制在第一个图表的顶部。我不知道如何在每次加载数据时刷新该图形并将其保存在新的 gui 文件中。
请帮帮我。这是我第一次使用 Gui 界面。我在下面发布我的加载数据回调函数。和 Gui 界面作为 .jpg 附件。谢谢你。
function shiva_Callback(hObject, eventdata, handles)
hold off
% load data
%plot
yyaxis left
loglog(t,a,'b')
hold on
loglog(t,t,'r')
loglog(t,d,'c')
loglog(t,,'m')
ylabel('% Text')
xlabel('T')
yyaxis right
loglog(t,s,'y')
loglog(t,st,'g')
function ma_Callback(hObject, eventdata, handles)
% i tried uisave but not possible to run computer without matlab cause mcr
% does not run uisave
% i tried copyopbj but since i did not put a name on my figure it did not
% work
您有 hold
set to on
,这意味着放置在 axes
上的所有新地块都将 添加 到现有地块,而不是替换它们。您可以做的最简单的更改是在加载新数据之后但在开始绘图之前(即在回调的顶部)调用 hold off
。
function shiva_Callback(hObject, eventdata, handles)
% Ensure that our new plots overwrite existing plots
yyaxis left
hold off
yyaxis right
hold off
handles.filename = uigetfile('*.xls');
% Load data in
% Now plot the new plots
yyaxis left
loglog(p, r, 'b');
% Enable adding plots again
hold on
loglog(p, t, 'r');
% Plot the rest of your stuff
yyaxis right
loglog(p, a, 'y')
hold on
loglog(p, h, 'g')
ylabel('State and Status');
grid on
我正在尝试编写一个 matlab gui 代码,它将从 CSV 文件加载数据并绘制图形。每次,我都会通过单击加载数据按钮来加载数据,绘图应该会刷新并绘制新数据。我能够加载数据并绘制第一张图。但是,如果我第二次单击加载数据按钮,它会从不同的 CSV 文件加载数据,但它会绘制在第一个图表的顶部。我不知道如何在每次加载数据时刷新该图形并将其保存在新的 gui 文件中。 请帮帮我。这是我第一次使用 Gui 界面。我在下面发布我的加载数据回调函数。和 Gui 界面作为 .jpg 附件。谢谢你。
function shiva_Callback(hObject, eventdata, handles)
hold off
% load data
%plot
yyaxis left
loglog(t,a,'b')
hold on
loglog(t,t,'r')
loglog(t,d,'c')
loglog(t,,'m')
ylabel('% Text')
xlabel('T')
yyaxis right
loglog(t,s,'y')
loglog(t,st,'g')
function ma_Callback(hObject, eventdata, handles)
% i tried uisave but not possible to run computer without matlab cause mcr
% does not run uisave
% i tried copyopbj but since i did not put a name on my figure it did not
% work
您有 hold
set to on
,这意味着放置在 axes
上的所有新地块都将 添加 到现有地块,而不是替换它们。您可以做的最简单的更改是在加载新数据之后但在开始绘图之前(即在回调的顶部)调用 hold off
。
function shiva_Callback(hObject, eventdata, handles)
% Ensure that our new plots overwrite existing plots
yyaxis left
hold off
yyaxis right
hold off
handles.filename = uigetfile('*.xls');
% Load data in
% Now plot the new plots
yyaxis left
loglog(p, r, 'b');
% Enable adding plots again
hold on
loglog(p, t, 'r');
% Plot the rest of your stuff
yyaxis right
loglog(p, a, 'y')
hold on
loglog(p, h, 'g')
ylabel('State and Status');
grid on