8 MATLAB_GUI_选择参数绘制曲线


  注:该笔记是学习b站上 MATLAB GUI教学视频而记录的笔记,笔记来源于本人。若有侵权,请联系本人删除,谢谢。若有错误,欢迎在评论区里指出。

一、实例效果

  如图所示,界面左侧是一个列表框(ListBox),可以通过更改选项来调整所选择的函数。可选择其中一个函数作为x轴参数,另一个函数作为y轴参数。当x、y的参数方程选择好以后,点击绘制曲线,就可以在右边的坐标系中显示出对应的函数曲线。
在这里插入图片描述

二、步骤

  1.打开上一个博客的GUI。

  注:本人为了保留上一个博客的GUI,按照上一个博客再做了一个相同的GUI。
在这里插入图片描述

  2.进入列表框(ListBox)的Crate Function中(该函数是在 创建控件时 执行的,常用于设置背景,不像回调函数那样可以通过控件直接触发),编写创建函数。

在这里插入图片描述
  代码如下:
  该创建函数的作用是:在创建列表框(ListBox)时,就定义了参数t、sin(t)、cos(t)、sin(t)+cos(t)的取值范围,并存储在结构体handles中的变量CS中。

% --- Executes during object creation, after setting all properties.
function listbox1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to listbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: listbox controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
% 当列表框(ListBox)刚被创建时,定义四组参数的值
t = 0:0.01:2*pi;
canshu1 = t;                % 第一个参数为t
canshu2 = sin(t);           % 第二个参数为sin(t)
canshu3 = cos(t);           % 第三个参数为cos(t)
canshu4 = sin(t)+cos(t);    % 第四个参数为sin(t)+cos(t)
CS = {canshu1,canshu2,canshu3,canshu4}; %将4个参数保存在CS中
% 为了便于其他控件能够获取到CS,故将它保存到handles结构体中, 在结构体中创建一个新的域 —— CS
handles.CS = CS;
% 当更新handles结构体后,需要对结构体handles进行保存
guidata(hObject,handles);

在这里插入图片描述

  3.进入按钮“选择x的参数”的回调函数中,获取x轴的数据。

在这里插入图片描述
  代码如下:

% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
selected_index = get(handles.listbox1,'value');%获取列表框(ListBox)中的value值,判断是哪一个函数被选中
str = get(handles.listbox1,'string');%获取列表框(ListBox)中的string
set(handles.edit1,'string',str{selected_index});%将列表框(ListBox)中被选中的那一行对应的函数字符串显示在左边那个可编辑文本框中

x = handles.CS{selected_index};% 根据列表框的选择(即selected_index),获取x轴的数据
handles.x = x; %将获取到的x轴数据保存到handles结构体当中
guidata(hObject,handles);%更新并保存结构体handles

在这里插入图片描述

  4.进入按钮“选择y的参数”的回调函数中,获取y轴的数据。

在这里插入图片描述
  代码如下:

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
selected_index = get(handles.listbox1,'value');%获取列表框(ListBox)中的value值,判断是哪一个函数被选中
str = get(handles.listbox1,'string');%获取列表框(ListBox)中的string
set(handles.edit2,'string',str{selected_index});%将列表框(ListBox)中被选中的那一行对应的函数字符串显示在右边那个可编辑文本框中

y = handles.CS{selected_index};% 根据列表框的选择(即selected_index),获取y轴的数据
handles.y = y; %将获取到的y轴数据保存到handles结构体当中
guidata(hObject,handles);%更新结构体handles

在这里插入图片描述
  然后调整一下控件的位置和界面的大小。
在这里插入图片描述

  5.创建一个按钮和一个坐标系,作用:当参数选好后,可点击该按钮,将需要的函数图像绘制出来。

在这里插入图片描述
在这里插入图片描述
  进入按钮的回调函数中,并编写回调函数。
在这里插入图片描述
  代码如下:
  作用:点击绘制曲线按钮后,会在坐标系中画出相应的曲线。

% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% 点击绘制曲线按钮后,会在坐标系中画出相应的曲线
if isfield(handles, 'x') && isfield(handles, 'y') %if语句的作用:如果没有选择x或没有选择y的参数,是不能绘制图像的
    axes(handles.axes1);%将GUI中的坐标系置为当前
    plot(handles.x,handles.y);%绘制曲线
    axis equal;%设置x轴与y轴为等长
end

在这里插入图片描述

  6.保存并运行程序,查看效果。

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MATLABGUI界面中绘制曲线图,可以按照以下步骤进行操作: 首先,打开MATLAB界面并创建一个GUI(图形用户界面)应用程序或使用GUIDE工具创建一个新的GUI。 其次,将一个Axes(坐标轴)组件添加到GUI界面。Axes组件将用于绘制曲线图。 然后,通过在代码中调用plot函数绘制曲线。plot函数需要传入要绘制曲线的x和y数据。例如,可以使用如下代码绘制一个简单的正弦曲线: ``` x = 0:0.1:2*pi; % 创建x轴数据,从0到2π,步长为0.1 y = sin(x); % 创建y轴数据,对应x轴的正弦值 plot(handles.axes1, x, y); % 在axes1组件中绘制曲线 ``` 在上述代码中,`handles.axes1`代表在GUI中添加的Axes组件。 接下来,可以添加曲线的标题、坐标轴标签、图例等,以增强曲线图的可读性和美观性。例如,可以使用如下代码添加曲线的标题和坐标轴标签: ``` title(handles.axes1, '正弦曲线'); % 添加曲线标题 xlabel(handles.axes1, 'x轴'); % 添加x轴标签 ylabel(handles.axes1, 'y轴'); % 添加y轴标签 ``` 最后,可以通过设置Axes组件的属性来调整曲线图的显示效果。例如,可以设置坐标轴的范围、网格线等。以下代码示例设置y轴范围为-1到1: ``` ylim(handles.axes1, [-1, 1]); % 设置y轴范围为-1到1 ``` 通过以上步骤,就可以在MATLABGUI界面上绘制曲线图。根据实际需要,可以进一步修改代码和GUI界面的设计,以满足自己的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知乎云烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值