精华内容
下载资源
问答
  • Matlab GUI制作Matlab GUI通常可以用 guide 或者 AppDesigner进行制作关于这两个制作GUI的差距和优劣势可以参考下面这篇文章,本文不作探讨。https://zhuanlan.zhihu.com/p/88897613本节将讲解guide的制作方法。本文...

    Matlab GUI制作

    Matlab GUI通常可以用 guide 或者 AppDesigner进行制作

    关于这两个制作GUI的差距和优劣势可以参考下面这篇文章,本文不作探讨。

    https://zhuanlan.zhihu.com/p/88897613

    本节将讲解guide的制作方法。

    本文内容如下:

    一、步骤

    二、 GUI中简单的Matlab语法

    三、简单例子

    一、步骤

    1.命令行里输入guide

    9cda794a0da3bb856d11706c3d4d0f45.png

    2.可以创建新的GUI也可以选择以前的GUI

    ad65d8b7e2a04dc04ad16146aa9f0a3b.png

    3.选择空白GUI,跳出设计窗口

    481a75cec046b9a3272172bcbd060366.png

    4.添加控件

    91998a50558efde7cea63a964791c6ea.png

    51783cda8f3372915082751202098c4b.png

    ab41dcf504ed26b6188c535a5d91574c.png

    5.界面开发环境

    2ca749657662e6a78182ad1288717347.png

    e3c06a305e9a16f4cbf6af5e712ce165.png

    847b2ad352e13ee07aef51ef4aa79876.png

    fb1db2875acb6961e3c5919169ddaf5f.png

    f56bc7dc17cd00f731005bd73c07fa6a.png

    03dc7af614be56aab113007bef398af9.png

    8f9a8633ee6662699c5364925edf618b.png

    56d6a82552155acf5f19ff9b0a885a04.png

    6.控件对象和属性

    BackgroundColor:取值为颜色的预定义字符或RGB数值;缺省值为浅灰色;

    Callback:取值为字符串,可以是某个M文件名或一小段Matlab语句,当用户激活某个控件对象时,应用程序就运行该属性定义的子程序;

    Enable:取值为on(缺省值),inactive和off;

    Extend:取值为四元素矢量[0, 0, width, height],记录控件对象标题字符的位置和尺寸;

    ForegroundColor:取值为颜色的预定义字符或RGB数值,该属性定义控件对象标题字符的颜色;缺省值为黑色;

    Max,Min:取值都为数值,缺省值分别为1和0;

    String:取值为字符串矩阵或块数组,定义控件对象标题或选项内容;

    Style:取值可以是pushbutton(缺省值), radiobutton, checkbox, edit, text, slider, frame, popupmenu 或listbox;

    Units:取值可以是pixels (缺省值), normalized(相对单位), inches, centimeters(厘米)或points(磅);

    Value:取值可以是矢量,也可以是数值,其含义及解释依赖于控件对象的类型;

    FontAngle:取值为normal(正体,缺省值), italic(斜体), oblique(方头);

    FontName:取值为控件标题等字体的字库名;

    FontSize:取值为数值;

    FontUnits:取值为points(缺省值), normalized, inches, centimeters或pixels;

    FontWeight:取值为normal(缺省值), light,demi和bold,定义字符的粗细;

    HorizontalAligment:取值为left,center (缺省值) 或 right,定义控件对象标题等的对齐方式。

    7.菜单设计

    d0f138a5b59f92593b915e90f587c02c.png

    18900e79339e5686ae7db2dd5964c2d2.png

    8.GUI控制函数

    CallBack: 最常用的。点击按钮时,按钮下的Callback就会执行;拖动滑块时,滑块名下的callback就会执行;总之,正常用途全放在callback下。ButtonDownFcn:单击,这个函数名下的代码就会执行。(ps:按钮的callback也是点击,覆盖掉buttondownfcn。)CreateFcn:顾名思义,在生成这个控件,显示之前,执行这个函数名下的代码。

    DeleteFcn: 顾名思义,在控件要销毁,但是被毁灭之前执行这个函数名下的代码。貌似“真的要退出吗”这一类。KeyPressFcn:当前控件获得焦点且有按键按下时执行。SelectionChangeFcn:在群按钮组件中改变选择时,所执行的函数

    12640fc43cdb45c4dddccde2588b75cf.png

    二、 GUI中简单的Matlab语法

    1.

    MATLAB中,类的定义如下:

    classdef classname   properties      PropName   end   methods      methodName   end   events      EventName   end   enumeration      EnumName   endend

    classdef 代码块内包含了类定义的全部元素,包含在一个以类名为文件名的m文件中。

    其中,常用的有属性和方法

    properties属性

      properties

          Prop1

          Prop2 = 'some text'

          Prop3 = sin(pi/12)

          Prop4 = containers.Map

          Prop5 (1,1) double {mustBePositive} = 1

       end

    Methods方法

    使用 MATLAB 函数语法或圆点表示法调用普通方法。例如,假设您有一个定义 ordinaryMethod 的类。传递定义类的对象和任何需要的参数。

    classdef MyClass

       methods

          function out = ordinaryMethod(obj,arg1)

          ...

          end

       end

    end

    使用类的对象 obj 和以下任一语法调用 ordinaryMethod

    obj = MyClass;

    r = ordinaryMethod(obj,arg1);

    r = obj.ordinaryMethod(arg1);

    2.有用函数

    uigetfile:获取文件名,以及路径

    简单应用

    [file,path] = uigetfile('*.m');

    if isequal(file,0)

       disp('User selected Cancel');

    else

       disp(['User selected ', fullfile(path,file)]);

    end

    3a514ea12bbb28b82007a173450cdf28.png

    uigetdir:获取文件夹路径

    dname = uigetdir('C:\');

    a36986cd91f950be5e5fb4c2d57ff998.png

    waitbar:正在读取的进度条

    function basicwaitbarf = waitbar(0,'Please wait...');pause(.5)waitbar(.33,f,'Loading your data');pause(1)waitbar(.67,f,'Processing your data');pause(1)waitbar(1,f,'Finishing');pause(1)close(f)end

    6dee6ddd8f8b575ca3803026048a1065.png

    三、简单例子:

    本例子来源:https://blog.csdn.net/GitChat/article/details/78546892

    1.加法实例,怎么使用get和set。

    添加三个静态文本和一个按钮

    这里注意:tag属性的属性值分别为number_1, number_2, number_3(对tag属性进行设置,相当于给每个控件起个不同的名字,便于后面对每个控件进行操作)。

    7592962662f349a81dbf2df602ab1e44.png

    按钮的回调函数,按下去就执行这段代码,一般来说,只要修改回调函数,所有功能都可以加到这里

    a23fdd80addd00b99728c91d58258b53.png

    更多例子可见:https://zhuanlan.zhihu.com/p/62381668

    参考资料:

    Matlab官方帮助文档

    https://www.bilibili.com/video/BV19W411u7tJ/?spm_id_from=333.788.videocard.0

    https://www.bilibili.com/video/BV13J41147Lc/?spm_id_from=333.788.videocard.1

    https://blog.csdn.net/qq_40316114/article/details/83281069

    https://blog.csdn.net/GitChat/article/details/78546892

    https://wenku.baidu.com/view/6023ff48852458fb770b56f8.html

    https://blog.csdn.net/am290333566/article/details/83786039

    https://zhuanlan.zhihu.com/p/88897613

    展开全文
  • 本文转载在我的微信公众号:古德曼汽车工业。希望关注本专栏的朋友,也能一并关注微信公众号。

    本文转载在我的微信公众号:古德曼汽车工业。

    9e7908975890ea7e3acc8ee5ee184100.png

    希望关注本专栏的朋友,也能一并关注微信公众号。

    展开全文
  • MATLAB GUI设计快速入门实例

    千次阅读 2019-11-27 10:47:15
    为了实现课题的一个功能,需要设计一个图形界面,因此使用matlab GUIDE进行设计,但前期没有接触过,因此通过实例练习,理解MATLAB gui设计相关知识。 一、几个GUI设计需要了解的知识 1、进入GUI 设计界面:在命令行...

    时间:2019.11.27
    目的: 课题需要设计一个界面
    为了实现课题的一个功能,需要设计一个图形界面,因此使用matlab GUIDE进行设计,但前期没有接触过,因此通过实例练习,理解MATLAB gui设计相关知识。

    一、几个GUI设计需要了解的知识

    1、进入GUI 设计界面:在命令行输入guide,创建一个空白的GUI,保存即可,在保存目录下会生成两个文件(.fig和.m)。然后进入编辑界面,如图所示:
    在这里插入图片描述
    2、在界面中有许多GUI 设计对象(按钮、滑动条等),选取相应的图表,往右侧编辑区域拉即可。相关功能的自定义可右键对象(如按钮),选择回调函数,进入.M文件,通过编写程序实现。
    3、几个重要的参数,在.m文件中,回调函数一般有4个参数,handles你可以认为是所有图标的结构体,而hObject则是结构体中的成员。其他相关知识可通过一下实例进行练习。

    二、实例代码

    在这里插入代码片
    ```function varargout = example_6_1(varargin)
    % EXAMPLE_6_1 MATLAB code for example_6_1.fig
    %      EXAMPLE_6_1, by itself, creates a new EXAMPLE_6_1 or raises the existing
    %      singleton*.
    %
    %      H = EXAMPLE_6_1 returns the handle to a new EXAMPLE_6_1 or the handle to
    %      the existing singleton*.
    %
    %      EXAMPLE_6_1('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in EXAMPLE_6_1.M with the given input arguments.
    %
    %      EXAMPLE_6_1('Property','Value',...) creates a new EXAMPLE_6_1 or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before example_6_1_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to example_6_1_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    
    % Edit the above text to modify the response to help example_6_1
    
    % Last Modified by GUIDE v2.5 27-Nov-2019 10:30:50
    
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @example_6_1_OpeningFcn, ...
                       'gui_OutputFcn',  @example_6_1_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
    
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
    
    
    % --- Executes just before example_6_1 is made visible.
    function example_6_1_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to example_6_1 (see VARARGIN)
    
    % Choose default command line output for example_6_1
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    % UIWAIT makes example_6_1 wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    
    
    % --- Outputs from this function are returned to the command line.
    function varargout = example_6_1_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    
    %% 实例1 设置标签的颜色
    % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    % --- Otherwise, executes on mouse press in 5 pixel border or over pushbutton1.
    function pushbutton1_ButtonDownFcn(hObject, eventdata, handles) 
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    c = get(hObject,'foregroundcolor');   %c是按钮标签颜色
    c_user = uisetcolor(c,'选择颜色');    
    set(hObject,'foreg',c_user);
    
    %% 实例2 设置标签的字体
    % --- If Enable == 'on', executes on mouse press in 5 pixel border.
    % --- Otherwise, executes on mouse press in 5 pixel border or over text2.
    function text2_ButtonDownFcn(hObject, eventdata, handles)  
    % hObject    handle to text2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    font_user = uisetfont(hObject,'设置字体');
    
    %% 实例3 切换按钮
    % --- Executes on button press in togglebutton1.
    function togglebutton1_Callback(hObject, eventdata, handles)  %切换按钮实例
    % hObject    handle to togglebutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hint: get(hObject,'Value') returns toggle state of togglebutton1
    val = get(hObject,'Value');
    if val
        set(handles.t1,'BackgroundColor','g');
    else
          set(handles.t1,'BackgroundColor','r');
    end
    
    %% 实例4 滑动条
    % --- Executes on slider movement.
    function slider2_Callback(hObject, eventdata, handles) 
    % hObject    handle to slider2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'Value') returns position of slider
    %        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
    val = get(hObject,'Value');
    set(handles.text1,'string',num2str(val,'3.0%f'));
    function slider2_CreateFcn(hObject, eventdata, handles) %创建滑动条的函数
    
    %% 实例5 单选按钮
    % --- Executes on button press in save_data.
    function save_data_Callback(hObject, eventdata, handles)
    % hObject    handle to save_data (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hint: get(hObject,'Value') returns toggle state of save_data
    val = get(hObject,'Value');
    if val
        [FileName,PathName,Index] = uiputfile({'*.txt';'*.xls'},'数据另存为');
        if Index
            set(handles.text5,'string',[PathName FileName]);
        end
    end
    
    %% 实例6 可编辑文本 可允许用户修改文本内容,用于数据的输入和显示
    function edit1_Callback(hObject, eventdata, handles)
    % hObject    handle to edit1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of edit1 as text
    %        str2double(get(hObject,'String')) returns contents of edit1 as a double
    str = get(hObject,'String');
    val = str2num(str);
    if ~isempty(val)&&(val>=0&val<=1)
        set(handles.val_disp,'value',val);
    end
    % --- Executes during object creation, after setting all properties.
    function edit1_CreateFcn(hObject, eventdata, handles)
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    function val_disp_Callback(hObject, eventdata, handles)
    
    function val_disp_CreateFcn(hObject, eventdata, handles)
    if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor',[.9 .9 .9]);
    end
    
    %% 实例7 复选框 与单选按钮类似,通过鼠标左键单击在选中与未选中两种状态切换
    % --- Executes on button press in checkbox1.
    function checkbox1_Callback(hObject, eventdata, handles)
    % hObject    handle to checkbox1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hint: get(hObject,'Value') returns toggle state of checkbox1
    val = get(hObject,'Value');
    if val
        set(handles.slider4,'Enable','on');
    else
           set(handles.slider4,'Enable','off');
    end
    % --- Executes on slider movement.
    function slider4_Callback(hObject, eventdata, handles)
    % hObject    handle to slider4 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'Value') returns position of slider
    %        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
    
    
    % --- Executes during object creation, after setting all properties.
    function slider4_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to slider4 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: slider controls usually have a light gray background.
    if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor',[.9 .9 .9]);
    end
    
    %% 实例8 列表框 用于显示一组选项,通过鼠标左键单击,可选中任一选项
    % --- Executes on selection change in subject.
    function subject_Callback(hObject, eventdata, handles)
    % hObject    handle to subject (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: contents = cellstr(get(hObject,'String')) returns subject contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from subject
    %在列表框上双击时,figure的selectiontype的属性会更新为open
    sel = get(gcf,'selectiontype'); %获取鼠标按键类型
    if strcmp(sel,'open')           %若双击了鼠标,
        str = get(hObject,'string');%获取列表框所有文本
        val = get(hObject,'value'); %获取列表框当前索引值
        set(handles.sub_sel,'string',str{val});%将列表框的值写在静态文本中
    end
    
    % --- Executes during object creation, after setting all properties.
    function subject_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to subject (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
    
    %% 实例9 弹起式菜单 即下拉菜单
    % --- Executes on selection change in province.
    function province_Callback(hObject, eventdata, handles)
    % hObject    handle to province (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: contents = cellstr(get(hObject,'String')) returns province contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from province
    sel = get(hObject,'Value');
    stra = {'哈尔滨';'大庆';'黄冈';'阿城';'齐齐哈尔'};
    strb = {'武汉';'襄阳';'黄冈';'荆州';'孝感'};
    switch sel
        case 1 
            set(handles.city,'string','','value',1)
        case 2
            set(handles.city,'string',stra,'value',1)
        case 3
            set(handles.city,'string',strb,'value',1)
    end
        
    % --- Executes during object creation, after setting all properties.
    function province_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to province (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: popupmenu 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
    
    
    % --- Executes on selection change in city.
    function city_Callback(hObject, eventdata, handles)
    % hObject    handle to city (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: contents = cellstr(get(hObject,'String')) returns city contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from city
    
    
    % --- Executes during object creation, after setting all properties.
    function city_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to city (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
    
    %% 实例10 按钮组
    function num_Callback(hObject, eventdata, handles)
    % hObject    handle to num (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of num as text
    %        str2double(get(hObject,'String')) returns contents of num as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function num_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to num (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit 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
    
    
    % --- Executes when selected object is changed in bin_dec.
    function bin_dec_SelectionChangedFcn(hObject, eventdata, handles)
    % hObject    handle to the selected object in bin_dec 
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    str = get(handles.num,'string');
    switch get(hObject,'tag') %必须为标量或者是字符串常量
        case 'bin'
            val = floor(str2double(str));%将输入值转换为整数
            if(~isempty(val)&&val>=0)    %输入的值为数值且非负数
                set(handles.num,'string',dec2bin(val))
            else
                set(handles.num,'string','输入错误');
            end
        case 'dec'
            if all(str == '0' | str == '1')
                set(handles.num,'string',numstr(bin2dec(str)));
            else
                 set(handles.num,'string','输入错误');
            end
    end
    
    %% 实例11 面板 与按钮组一样都是GUI的容器,对象类型均为uipanel
    %% 实例12 表格
    %% 实例13 坐标轴   
    % --- Executes on button press in load_pic.
    function load_pic_Callback(hObject, eventdata, handles)
    % hObject    handle to load_pic (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    [FileName,PathName,FilterIndex] = uigetfile({'*.jpg';'*.bmp'},'选择图片');
    if FilterIndex
        str = [PathName FileName];
        c = imread(str);
        image(c,'Parent',handles.axes1);
        axis off;
    end
    
    
    % --- Executes during object creation, after setting all properties.
    function axes1_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to axes1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: place code in OpeningFcn to populate axes1
    
    
    
    展开全文
  • MATLABGUI实例

    2014-12-22 13:52:03
    MATLAB界面设计实例MATLAB图像处理 Hough霍夫曼直线检测 源程序代码
  • 图形用户界面的操作步骤 目录 8.1GU设计向导 8.2编程设计GUI 83图形用户界而设计实例 习题 8.1GU设计向导 8.1.1GUI概述 8.1.2启动 GUIDE 8.1.3 GUIDE提供的控件 本节介绍: 图形用户界面(GUI)的基本概念; GUI开发...
  • MATLABGUI设计指导文档

    2019-03-20 09:40:35
    MATLAB GUI设计大全,里面有关于每个控件的讲解,并且包含实例。内容清晰,且有目录,使用方便。
  • 导读:本内容主要介绍利用Workbench进行多变量多目标优化设计的整个技术方法,提供...Workbench提供了Design Exploration工具,可以进行优化设计以及响应面等类型问题的相关分析,下面通过一个非常简单的实例对优...

    导读:本内容主要介绍利用Workbench进行多变量多目标优化设计的整个技术方法,提供基本的模型处理以及优化算法设置的整个过程介绍。

    在现代机械设计理论中通常会介绍众多的优化设计算法,在了解基本的算法理念之后,通过软件实现优化设计是机械设计中常用的设计流程。Workbench提供了Design Exploration工具,可以进行优化设计以及响应面等类型问题的相关分析,下面通过一个非常简单的实例对优化设计过程进行讲解,基本的优化项目卡片如图1所示。

    051a7bdbf4d3fb5f8218d55b936d1edf.png

    图1 优化设卡片

    我们需要做的工作是:参数化设计模型-->初始设计仿真计算-->搭建优化模型-->获得优化结果,这也是优化的基本流程。

    在这个例子中,我们希望通过对几何尺寸的变化搜索,保证变形和应力值低于某个数值之下,结构质量最轻,一个简单的轻量化问题。

    首先是参数化设计,在workbench中可以通过下面的方法实现,建立草图然后对参与优化设计的变量进行参数化,选择设计变量前面的小方格,使其变为图2中所示带“D”样式,对所有参与优化设计的变量进行同样处理。

    27b2257186b7db97483456de39bd760a.png

    图2 参数化几何设计变量

    然后我们进行基本的初始设计仿真计算,这里是一个简单的悬臂梁结构,计算设置如图3所示,输出结果如图4。

    6fcc556ac447dfb0b9dbd081258f00dd.png

    图3 边界及载荷

    061cc88a530a1c1767541cb7b3b30b62.png

    图4 计算结果云图

    这里需要对质量以及计算结果进行参数化,与几何尺寸参数化一样,找到对应的变量然后单击前方的小方格,质量则在Model中的Geometry下设置,最终如图5所示。

    2f1e456fda23ffac2cd853dbb3833308.png

    图5 设置其它变量的参数化

    这些设置完成之后可以看到在项目卡片中会产生parameter set项,其中就有我们所建立的各个变量,如图6所示,然后在左侧工具栏选择direct optimization创建优化项目。

    b252bb0207c37e9812141bbf76f89499.png

    图6 设计变量

    接下来是进行具体的优化设计设置,开展优化设置的步骤如下:

    (1)双击optimization进入优化设置步骤,在里面需要建立优化算法,选择优化模型,本例直接使用默认即可,设置samples为50,如图7所示。

    8ce307148755a245924469e56058f1fc.png

    图7 优化算法设置

    当然,workbench中提供了另外几种优化算法,分别是MOGA(多目标遗传算法)、NLPQL(拉格朗尔非线性规划算法)、MISQP(混合整数二次规划算法)等,不同的算法具备各自的优劣势,在进行优化设计中基于计算效率和求解需要有针对性的选择即可。

    (2)设置约束及目标,定义约束变量及优化目标,操作如图8所示。

    ee90f59cbd4d945a79cc0d1d668df34e.png

    图8 优化约束及目标

    (3)完成基本内容之后,我们还可以设置设计变量的上下线,默认软件会按照初始尺寸进行上下边界的浮动,用户也可以自行设定。最后我们可以看到基于Screening算法得到的整个优化设计的状态点,如图9所示,不同的优化算法对应不同的迭代样本点。

    1dd0b6fbf40feef229f742d67f822c85.png

    图9 优化试验点

    (4)提交求解,单击optimization选择update即可,完成之后我们得到一些输出的结果,包括优化解,灵敏度,整个过程的设计变量变化曲线等,candidate points给出优化的推荐结果,含五角星数量越多表示结果越好,如果没有完全符合优化结果的也会推荐较好的情况,如图10所示;另外查看各个变量对目标的影响程度,通过sensitivities查看,其中柱状图对应相关的设计变量的正负影响程度,如图11所示。

    30e36ebda945a33a8eedada74c15ca94.png

    图10 优化结果

    7f3296d2e5313186046f0ad310a68aee.png

    图11 灵敏度结果

    优化问题是结构设计中经常遇见的一类问题,对于我们提升设计降低成本有非常重要的作用。当然,本文是基于在workbench中建建模实现优化过程。读者朋友还可以借助其它三维设计软件进行几何建模,然后结合workbench来实现尺寸的优化。

    单个结构的优化设计实现相对较为简单,对于较复杂的装配模型如何实现优化和设计才是难点问题,希望有更多技术大牛们提供好的想法和技术思路。

    作者:米条老师 仿真秀APP专栏作者

    声明:原创文章,首发仿真秀官网,部分图片源自网络,如有不当请联系我们,欢迎分享,禁止私自转载,转载请联系我们。

    如果您正在学习CAE ,欢迎加入我们的学习型工程师社群,与我们抱团一起学习理论、软件和行业应用

    展开全文
  • MATLABGUI设计

    2016-10-28 17:50:25
    一个实例帮你熟悉MATLAB的界面编程,一看就理解的简单教程
  • 图图本次将解决关于GUI可视化界面设计的三个问题:1 如何更改GUI左上角的图标icon;2 如何隐藏GUI所有边框;3 如何将GUI界面最大化;4 如何模拟鼠标和键盘控制;为了更加直观地展示,制作了简易GUI界面,如下图:...
  • 一个不错的 Matlabgui 界面设计实例 %非常漂亮的日历 function CalendarTable; % calendar 日历 % Example: % CalendarTable; S=datestr(now; [y,m,d]=datevec(S; % d is day % m is month % y is year DD={'Sun...
  • 本书在第2版的基础上,结合高校MATLAB应用教学和工程实际应用的需要,从实用角度出发,循序渐进地讲述MATLAB GUI设计,并通过大量的设计实例和典型应用实例,帮助读者掌握从基本的数据可视化到高级的交互式图形界面...
  • 视频+程序+实例 MATLAB GUI设计学习笔记第二版 适用于初学至有基础不等,很好的学习资料与参考资料
  • 罗华飞的《MATLAB GUI设计学习手记》由浅入深、循序渐进地介绍了MATLAB GUl设计的基础知识,旨在使读者在较短时间内掌握GUl设计的精要所在。《MATLAB GUI设计学习手记》首先介绍了GUl设计的预备知识,然后详细介绍了...
  • MATLAB·gui设计简单计算器应用实例

    万次阅读 多人点赞 2019-06-19 23:26:51
    MATLAB 程序设计基础之gui设计 简单计算器应用实例 一、实验目的 掌握Matlab图形用户界面的设计流程 二、实验内容 用matlab设计有图形界面的计算器程序,其中清空和退出功能使用菜单栏实现(例子:calculator1) 三...
  • 1、GUI本质就是个图窗.fig文件,你保存后,系统后自动生成一个有关这个图窗启动显示的程序框架,一旦生成像文件名这个参数已经固定了,后续要修改相当麻烦,因此命名时想好了,后续要改名直接重命名是不行的,不如...
  • 一个不错的Matlabgui界面设计实例 (2008-10-03 15:47:30) matlab gui 界面 校园 分类:Matlab实例 %非常漂亮的日历,网上下载的,忘了出处了 function CalendarTable; % calendar 日历 ...
  • DTMF合成与识别MatlabGUI实例-DTMF.zip 本帖最后由 oieve 于 2015-7-30 17:03 编辑 利用GUI 图形用户界面设计工具制作电话拨号面板,把DTMF 信号和电话机的键盘矩阵对应起来。其中选用我们熟悉的 10个...
  • 基于MATLAB的可视化GUI界面设计 GUI界面的打开: 1:打开MATLAB 2:在命令行输入 >>guide 3:选择你所需要创建的GUI,一般为默认 4:通过添加你所需要实现的功能 5:双击2中的功能块,修改该功能(如按钮,...
  • matlab GUI设计图像去雾程序

    千次阅读 2019-09-02 23:37:48
    最近一直在自学matlab,也仅仅在网上看了些基础教学视频,还是想从实例中学点东西。从网上找到了下面这本书,照着书中给了代码,自己做了GUI界面,想把做的过程中遇到的困难写下来。 刘衍琦,詹福宇,蒋献文,周华英. ...
  • 包含直流电阻电路分析实例、戴维宁定理求解电路实例、动态电路分析实例、RLC 串联电路零状态响应实例、正弦稳态电路分析实例、非正弦交流电路分析实例、调谐振荡电路分析实例、验证电路信号合成定理实例等内容
  • 导弹打击过程模拟实例、可控速度的旋螺线运动实例、碰撞运动后速度与质量比关系实例、应力状态莫尔圆分析实例、研究气体分子运动麦克斯韦速度分布律实例、研究偶极子的电势和电场强度实例、计算电流环产生的磁场分布...
  • 这是基于matlab的数字图像处理,MATLAB应用实例精讲:图像处理与GUI设计篇,分享一下
  • 本章首先介绍了GUI设计中串口的使用方法,然后以专题形式,详细讲解了串口在GUI设计中的应用,并给出了一个串口通信助手的设计实例。 第10章:mcc编译。本章简要介绍了GUI编译为独立可执行文件的方法、mcc编译的局限...
  • 说明:记录了从零基础开始学习MATLAB GUI到独自设计完整个系统的过程,此系统是我的大学本科毕业设计题目,其中包括学习过程中的一些操作实例及代码、各控件的使用、界面美化方法等。编程设计中使用的MATLAB版本为...
  • 最后,书中给出两个综合实例,供读者研究学习。书中穿插了大量的图表和例题,方便读者边查边练。  本书适合需要短时间内迅速掌握MATLABGUl设计的初学者,也可作为相关专业师生或工程开发人员的参考手册。

空空如也

空空如也

1 2 3 4 5 6
收藏数 116
精华内容 46
关键字:

matlabgui设计实例

matlab 订阅