精华内容
下载资源
问答
  • matlab可视化程序

    2015-11-24 16:23:55
    matlab可视化程序,已经验证,挺好用的,主要是相关性分析的可视化表达
  • 这是一个简单的Matlab可视化编程示例,以学生信息管理系统为例。
  • MATLAB可视化程序在大学物理教学中的应用——以光栅衍射教学内容为例.pdf
  • MATLAB可视化程序在大学物理教学中的应用——以光栅衍射教学内容为例
  • 利用MATLAB实现数据可视化,在报告、论文等撰写中提高文章逼格
  • 该书是MATLAB与高等数学相结合的教材。MATLAB是一种图形功能和计算功能都十分强大的计算机语言。全书的各章分为两大部分,第一部分是基本内容,第二部分是范例的...该书也可以作为科研工作者设计MATLAB程序的参考书。
  • 该书是MATLAB与高等数学相结合的教材。MATLAB是一种图形功能和计算功能都十分强大的计算机语言。全书的各章分为两大部分,第一部分是基本内容,第二部分是范例的...该书也可以作为科研工作者设计MATLAB程序的参考书。
  • 程序中将物理内容和例题以范例的形式提出来,进行解析和图示,包含大量的曲线、曲面和动画等可视化例程。此代码可按操作直接运行,对深刻学习物理和形象化理解物理规律很有帮助,让物理不再是刻板而枯燥的文字和公式...
  • 使用MATLAB,利用了FFT等算法对傅里叶级数展开过程的进行实时3D可视化分析。利用MATLAB在绘图、计算方面的优势,将傅里叶的展开过程清晰地呈现出来,从而更好地帮助用户理解傅里叶级数,为电类专业未来的学习打下...
  • MATLAB 可视化GUI设计

    2020-10-20 19:28:35
    3:可以进行Mesh/Surf /Contours3以及网格的隐藏和显示(3维,等高线显示等) 4:能进行色图的选择(Spring Summer Autumn winter liner)等5种色图的选择 5:两个窗口,根据鼠标的选择进行左右两个窗口的函数实现...
  • 带电圆环的matlab可视化电场解析及模拟 (1).pdf
  • Matlab数据可视化编程总结 Matlab上的可视化编程基本上分为三部分–绘制二维图形、绘制三维图形、GUIDE工具 绘制二维图形 二维绘图函数有很多,基本上分为线性图、条形图、填充图、矢量图、放射图、散射图六大类 ...

    Matlab数据可视化编程总结

    Matlab上的可视化编程基本上分为三部分–绘制二维图形、绘制三维图形、GUIDE工具

    绘制二维图形

    二维绘图函数有很多,基本上分为线性图、条形图、填充图、矢量图、放射图、散射图六大类

    plot函数–基本平面图形函数
    plot函数的格式基本上是这样子的:
    plot(x,y,…各种附加条件…)
    列举几个例子
    1.绘制sin(x)函数图像,区间为0-2π
    x=0:pi/200:2*pi;
    y=sin(x);
    plot(x,y)
    在这里插入图片描述

    在区间0-2π内,绘制曲线Y=2e-0.5xcos(4πx)
    octave:3> x=0:pi/200:2pi;
    octave:4> y=2
    exp(-0.5x).cos(4pix);
    octave:5> plot(x,y)
    在这里插入图片描述
    在一个图像中随机两个随机曲线
    octave:8> plot(rand(12,1))
    octave:9> hold on
    octave:10> plot(rand(12,1))
    在这里插入图片描述
    图形上的设置
    1.线形和颜色
    用不用的线形和颜色绘制cos 和sin函数
    %g代表绿色o代表圆圈,b代表蓝色,-.代表点画线
    x=0:pi/200:2pi;
    a=sin(x);
    b=cos(x);
    plot(x,a,‘go’,x,b,‘b-.’)在这里插入图片描述
    在-π,π上用任意颜色、样式绘制y=tan (sin(x)- sin (tan(x))
    x=-pi:0.01:pi;
    y=tan(sin(x))-sin(tan(x)) ;
    plot(x,y,'b
    ’)
    在这里插入图片描述
    2.图形标记
    title标题命名
    xlabel 横轴命名
    ylabel 纵轴命名

    带正弦函数进行标记
    x=0:pi/200:2*pi;
    y=sin(x);
    plot(x,y,‘go’)
    title(‘sin’);
    xlabel(‘x’);
    ylabel(‘y’);
    在这里插入图片描述
    3.特殊图形
    area函数
    这个用面积来表示向量或者矩阵,用矩阵或者向量形成的曲线与X轴围城的面积

    使用area函数绘制面域图,反映各因素最终结果贡献的份额
    %建立M文件后输入
    x=-2:2
    x =

    -2 -1 0 1 2

    y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5]
    y =

    3 5 2 4 1
    3 4 5 2 1
    5 4 3 2 5
    sum=cumsum(y)
    sum =

    3    5    2    4    1
    6    9    7    6    2
    

    11 13 10 8 7
    area(x’,y’,0)
    legend(‘A’,‘B’,‘C’)
    ans = -12.365
    在这里插入图片描述
    2.条图
    x=-2:2;
    y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5];
    subplot(1,2,1),bar(x’,y’,‘stacked’)
    xlabel(‘x’),ylabel(‘y’),colormap(cool)
    legend(‘因素A’,‘因素B’,‘因素C’)
    subplot(1,2,2),barh(x’,y’,‘grouped’)
    在这里插入图片描述

    x=-2:2;
    y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5];
    subplot(1,2,1),bar3(x’,y’,1)
    xlabel(‘x’),ylabel(‘y’),zlabel(‘z’)
    colormap(summer)
    subplot(1,2,2),bar3h(x’,y’,‘grouped’)
    ylabel('y’),zlabel(‘x’)
    %这是三维的直方图,分别用bar3,bar3h表示垂直和水平横条,但是我这次用的是octave,似乎还没有开拓这个功能,所以跑不出来–The ‘bar3’ function is not yet implemented in Octave.

    3.饼图
    x = [1 3 0.5 2.5 2];
    explode=[0 1 0 0 0]
    pie(x,explode)
    在这里插入图片描述

    绘制三维图形

    1.plot3函数–绘制三维曲线

    t=0:pi/50:10pi;
    plot3(sin(t),cos(t),t)
    在这里插入图片描述
    再来一个
    t=0:pi/100:2
    pi;
    x=sin(t);
    y=cos(t);
    z=t.*sin(t).*cos(t);
    plot3(x,y,z)
    xlabel(‘x’);
    ylabel(‘y’);
    zlabel(‘z’);
    在这里插入图片描述

    2.mesh函数–绘制三维网络图
    mesh 和plot3不同,他可以绘制出在某一区间内的完整曲面

    举个例子,在区间0-x-2pi,0-y-2pi,绘制出三维曲线y=sin (y)cos(x)
    x=[0:0.15:2
    pi];
    y=[0:0.15:2*pi];
    z=sin(y’)*cos(x);
    mesh(x,y,z);
    在这里插入图片描述

    [x,y]=meshgrid(-3:1:3);
    z=peaks(x,y);
    meshc(x,y,z);
    axis([-3 3 -3 3 -10 5])

    在这里插入图片描述
    3. 曲面等高线
    [c,h]=contour(peaks(20),10);
    colormap autumn
    在这里插入图片描述

    z=peaks;
    [c,h]=contour(interp2(z,4));
    text_handle=cabel(c,h);
    set(text_handle,‘BackgroundColor’,[1 1 .6],…‘Edgecolor’,[.7 .7 .7])
    在这里插入图片描述
    4.contour3 函数–三维等高线

    [x,y]=meshgrid([-4:.2:4]);
    z=x.*exp(-x.^2-y .^2);
    contour3(x,y,z,30)
    在这里插入图片描述
    [x,y]=meshgrid([-2:.25:2]);
    z=x.*exp(-x.^2-y .^2);
    contour3(x,y,z,30)
    surface(x,y,z,‘EdgeColor’,[.8 .8 .8].‘FaceColor’,‘none’)

    在这里插入图片描述
    5.sphere函数–绘制球体

    figure
    [x,y,z]=sphere;
    surf(x,y,z)
    hold on
    surf(x+3,y-2,z)
    在这里插入图片描述
    surf函数–着色的三维曲面

    [x,y,z]=peaks(30);
    surfc(x,y,z)
    colormap hsv
    在这里插入图片描述

    GUIDE工具

    由于这次我是用线上的octave完成的,所以GUIDE这部分后期找机会我再来补充了

    参考文献
    MATLAB科学计算与数据统计应用–赵彬等著
    MATLAB入门到实践--谢龙汉、蔡思琪著

    展开全文
  • 点云数据txt可视化matlab
  • matlab设计GUI可视化界面全方位解析

    千次阅读 多人点赞 2020-06-03 00:32:10
    如何使用matlab设计GUI及导出一、GUI的基础知识开始生成GUI界面回调函数Handles结构体GUI中的参数传递二、控件介绍一、普通按钮二、可...GUI指的是图形用户界面,广泛用在各种程序的上位机,能够通过简单的操作和按

    一、GUI的基础知识

    GUI指的是图形化用户界面,广泛用在各种程序的上位机,能够通过简单的操作和按钮就可以调用底层代码,方便我们使用和展示结果。写好了底层的代码后我们就可以制作一个GUI界面来打包和展示。

    开始生成GUI界面

    首先打开matlab,在命令行界面输入guide指令就可以出现以下界面,其中有四个备选项,后三个都是一些模板,大家可以自行尝试,我们主要讲空白操作:
    在这里插入图片描述
    生成Blank Gui后会产生一个.fig文件和一个.m文件。.m文件大家都知道,就是matlab的程序文件,在其中写文件。.fig文件是图窗文件。在我们生成一个新的GUI完毕后会生成编辑窗口,这个图窗也可以通过右键点击.fig文件在guide中打开。
    在.m文件中,生成的初始部分我们都不需要修改,当我们在GUI中添加了组件后,.m文件中会生成响应的回调函数,我们只需要编辑回调函数就可以实现相应的操作。这个过程在java生成图形化界面的思想是类似的。GUI的初始文件内容如下:

    function varargout = blankgui(varargin)
    % BLANKGUI MATLAB code for blankgui.fig
    %      BLANKGUI, by itself, creates a new BLANKGUI or raises the existing
    %      singleton*.
    %
    %      H = BLANKGUI returns the handle to a new BLANKGUI or the handle to
    %      the existing singleton*.
    %
    %      BLANKGUI('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in BLANKGUI.M with the given input arguments.
    %
    %      BLANKGUI('Property','Value',...) creates a new BLANKGUI or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before blankgui_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to blankgui_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 blankgui
    
    % Last Modified by GUIDE v2.5 02-Jun-2020 16:33:33
    
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @blankgui_OpeningFcn, ...
                       'gui_OutputFcn',  @blankgui_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 blankgui is made visible.
    function blankgui_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 blankgui (see VARARGIN)
    
    % Choose default command line output for blankgui
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    % UIWAIT makes blankgui wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    
    
    % --- Outputs from this function are returned to the command line.
    function varargout = blankgui_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;
    

    生成的代码看起来复杂,但我们只需要注意除了OpeningFcn和OutputFcn其他地方都不要修改就行了。注意,这两个函数在GUI产生的时候会先按顺序执行一遍,然后在检查你是否对控件有操作上述的两个函数是回调函数,那么回调函数是什么意思呢?

    回调函数

    简单介绍,在GUI设计中回调函数就是我们在界面上进行相关操作后需要执行的函数。matlab中的回调函数分为五种:
    1、Callback
    这是最常用的回调函数,比如一个普通按钮,当你按下时,就会调用Callback函数执行,一个文本框,当你输入内容时,就可以执行Callback中的内容,比如要检查内容是否符合格式等等。总之,对一个控件执行默认的操作,Callback就会执行。实现功能,主要就是写在Callback下,当按下这个按钮时我们就可以使matlab开始某种计算然后画图。
    2、CreateFcn
    在显示某个控件之前执行里面的代码,比如某个控件要有先行条件,我们可以在这里面准备好。这个回调较少使用,我也没用过。
    3、DeleteFcn
    在使某个控件消失或关闭之前执行的代码,比如关闭时的自动保存,关闭时的确认是否关闭,都可以放在这里面。
    4、ButtonDowmFcn
    指的是鼠标在这上面点一下后执行的代码。对一个普通按钮就只能按下,Callback会覆盖掉这个函数的内容。对其他的控件,这个回调很多时候也起辅助作用,毕竟对一个可编辑文本框,你点他干啥,文本框就是拿来输入内容的。
    5、KeyPressFcn
    当某个控件被选中获得焦点时执行的代码。什么是焦点,比如你打开两个word,你输入的字只会出现在一个word上,因为此时的焦点在这个word上。

    Handles结构体

    Handles结构体包含了gui中所有对象的属性,包括你建立的控件。使用tag属性来索引每个控件,比如handles.edit1指的就是这个可编辑文本框。Handles可以用来值传递,在一个function中将指存入handles,就可以在另一个function中取出这个值。你可以在后文看见很多使用handles进行值传递操作的例子。

    GUI中的参数传递

    在GUI的.m文件中,参数不像一个可执行文件.m一样可以随意传递,因为GUI的.m文件中是以function的形式写的,参数不能在这些function之间随意传递,现总结以下两种方法:
    1、使用全局变量
    在GUI打开的初始化时,我们定义好全局变量。定义在哪呢?我们刚才提到了初始化.m文件中可编辑的是什么啊?对,就是OpeningFcn和OutputFcn,当我们打开这个fig的时候OpeningFcn中的内容会自动执行,此时我们可以将初始化内容放在这个里面,就比如参数的初始化。
    定义全局变量使用global x,要使用到这个变量时,需要在回调函数中再次声明global x才能使用,这件的好处是简单,但是全局变量的缺点就是一处改处处改,变量得不到保护。
    2、使用guidata和handles结合的方法
    如果在一个控件的回调函数中产生的参数想要传递出去可以这么写,使用这种方法末尾一定要添加guidata()

    handles.X=X;
    handles.Y=Y;
    guidata(hObject, handles);
    

    上述语句将要传出的数据存进了handles结构体中,如果要在另一处调用参数,可以这么写:

    X1=handles.X;
    Y1=handles.Y;
    plot(X1,Y1)
    

    handles结构体也包含了gui控件的所有属性,可以调用和修改。
    总之,在matlab的gui中进行值传递需要有特殊的操作,以下博客给出了更多的方法:https://www.cnblogs.com/jmliao/p/5628521.html

    二、控件介绍

    选择blank后是如下界面:
    在这里插入图片描述

    一、普通按钮

    在这里插入图片描述
    普通按钮功能是作为触发一个事件trigger。点一下就执行Callback中的内容。双击控件我们可以进入配置界面:
    在这里插入图片描述在这里插入图片描述在这里面我们可以设置回调、文字、各种属性。
    我们结合其他的控件来讲button。

    二、可编辑文本(edit)和静态文本(text)

    在这里插入图片描述
    可编辑文本是在运行时输入内容的,比如账号密码。静态文本只起显示内容作用。
    我们结合button来完成一个简单的任务:当我按下button时,读取可编辑文本中的内容到静态文本中显示。

    function pushbutton1_Callback(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)
    txt=get(handles.edit1,'string');
    set(handles.text2,'string',txt);
    

    这里就使用了set和get函数,使用了handles结构体进行值传递,不需要在文本框的回调函数中写任何内容。在这里插入图片描述
    这样我们就可以采集用户给的数据和显示了。另外,上述代码是读取字符的如果想要读取数字的话,需要使用 str2double()处理输出。

    三、单选框(radiobutton)和复选框(checkbox)

    在这里插入图片描述
    根据笔者的观察,单选框和复选框只是外型的不同,要实现选项互斥还是得依靠回调函数代码实现。我们结合文本框来实现加法和乘法选择,复选框用发类似不再赘述。
    实现两个单选框的互斥需要在各自回调函数中操作:
    给出单选框回调函数内容:

    function radiobutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to radiobutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    set(handles.radiobutton1,'value',1);
    set(handles.radiobutton2,'value',0);
    % Hint: get(hObject,'Value') returns toggle state of radiobutton1
    

    一个被选中时将另一个置零。
    给出button回调函数内容:

    function pushbutton1_Callback(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)
    if get(handles.radiobutton1,'value')
        option=1;
    elseif get(handles.radiobutton2,'value')
        option=0;
    end
    num1=str2double(get(handles.edit1,'string'));
    num2=str2double(get(handles.edit2,'string'));
    if option==0
        num=num1+num2;
    else
        num=num1*num2;
    end
    set(handles.text2,'string',num);
    

    结果如下:
    在这里插入图片描述上述就是简单的单选框操作。

    四、弹出式菜单(popupmenu)和列表框(listbox)

    在这里插入图片描述
    弹出式菜但都可以拿来作为选项,那我们怎么写备选项呢?在检查器中找到如下选项:
    在这里插入图片描述在这里插入图片描述
    按照上述格式就是选项。接下来我们完成一个显示小组组长的任务。
    首先我们把一共三个小组输入弹出式菜单:
    在这里插入图片描述
    然后我们把执行的任务写在回调函数中,因为三个小组的组长分别是张三、李四、王五,所以我们需要建立一个字符数组然后对应过来:

    function pushbutton1_Callback(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)
    label=get(handles.popupmenu1,'value');
    name=["张三","李四","王五"];
    set(handles.text2,'string',name(label));
    

    要注意我们从菜单中get到的是索引,不是菜单的字符内容。

    五、坐标区(axes)

    接下来我们讲讲坐标区,是一个非常重要的功能,用于画图。我们可以同时在一个界面上插入多个图窗,然后指定我们在哪个图窗里画图。在button的回调函数中我们可以写上之前在其他地方打包好的处理函数,或者定义数据和函数然后画图。这里我演示一个函数绘制工具,在edit框中写入函数,然后选择在哪个框中画出。首先我们设计button回调函数中读取函数名,然后根据单选框状态画出来。

    function pushbutton1_Callback(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)
    syms x;
    f=get(handles.edit1,'string');
    if get(handles.radiobutton1,'value')
    axes(handles.axes2)
    else 
    axes(handles.axes1) 
    end
    ezplot(f);
    

    在这里插入图片描述
    我们只需要在文本框中输入以x为变量的函数,就可以了,更复杂的操作读者可以自行探索。回调函数的内容怎么写上文已经说明。
    说到这里了,已经介绍了很多的控件操作,剩下的使用较少,希望读者自行探索。

    三、多个GUI界面的交互

    有些时候我们要完成的任务不会只在一个GUI中就能解决,这时需要用到多个GUI的合作和数据交互。

    一、打开另一个GUI

    这个功能主要通过run()实现,我这里举一个简单的例子,当我们按下button时,弹出一个确认框。
    我们先新建一个GUI界面命名为confirm。在其中新建好静态文本和两个button,右下角的黑点可以调整画布大小,使其满足自己的要求:
    在这里插入图片描述之后在前一个GUI的button回调函数中写下run(comfirm),此时我们再按下button时就会弹出我们这个gui界面了,用这个方法可以制作处二级的GUI界面,完成更高级的功能。
    在这里插入图片描述

    二、GUI件参数的传递

    看完了上一部分,此时小伙伴们就要问了,我点是或否没有用啊,因为我们没有设置参数的传递,如果此时你新生成的GUI具有独立的功能,那么你完全可以想创建第一个新的那样来写这个GUI,但如果子GUI是一个界面用于设置父GUI需要的各种参数的话,那你就麻烦了。此时两个GUI产生了交互,那我们应该怎么设置呢?
    我们加大上个问题的难度,先读取父GUI中的分数,然后在子GUI显示,确认后送回父GUI中显示确认的结果。
    当我们在父GUI中按下button时,需要读取文本框中分数的大小,我们先在button的回调函数中写score=get(handles.edit1,'string');用于读取分数并存放在score中,此时我们需要把这个score送入我们的comfirmGUI中,使用out = comfirm(score) 注意此处的out是从子GUI中得到的返回值,score是形参,comfirm换成你自己的子GUI名。所以在button的回调中这么写:

    function pushbutton1_Callback(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)
    score=get(handles.edit1,'string');
    out = comfirm(score) ;
    if out==1
        set(handles.text2,'string',"已确认");
    else
        set(handles.text2,'string',"已否认")
    end
    

    现在我们关注子GUI写法。我们在父GUI中调用了comfirmGUI,此时按下button就会弹出子GUI,我之前讲了,一个GUI的初始化工作是在OpeningFcn中执行的,我们在这个地方取出父GUI传来的分数,handles.in1 = varargin{1};注意,这个varargin和即将出现的varargout是两个大小可变的数组,用来传送输入和输出。所以在子GUI的OpeningFcn中这么写:

    function comfirm_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 comfirm (see VARARGIN)
    handles.in1 = varargin{1};
    set(handles.text3,'string',['确认分数是',handles.in1,'吗?']);
    % Choose default command line output for comfirm
    % Update handles structure
    guidata(hObject, handles);
    uiwait(handles.figure1)
    

    思路是我们得到了varargin传来的数据也就是分数后,显示出来。强调!我在第一部分的时候讲过了,OpeningFcn和OutputFcn是按顺序执行的!我们必须在末尾加上uiwait(handles.figure1)figure1是子GUI的tags,检查器中可以找到。这个语句会让程序停下不再执行OutputFcn,否则一开始输出就确定了那就不需要白费力气了。
    接下来我们看button的回调函数,这个很简单:

    function pushbutton1_Callback(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)
    handles.out1=1;
    guidata(hObject, handles);
    uiresume(handles.figure1)
    

    如果是被按下,则返回1并用handles传出。在button回调函数的结尾必须加上uiresume(handles.figure1)这样才能继续回到我们刚才uiwait的地方继续执行OutputFcn,我们看看它的内容:

    function varargout = comfirm_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.out1;
    delete(handles.figure1); 
    

    varargout是用于将子GUI内的数据传出的载体,之前已经讲过了与之相对的varargin,就不再多说了。在最后我们要加上delete(handles.figure1);表示执行到这个地方关闭子GUI,其中figure1是子GUI的tags。到这个地方我们就回到了父GUI并得到了下图:
    在这里插入图片描述到这个地方,多个GUI的关联和值传递就差不多了。

    结束语

    笔者水平有限,简单地介绍了一下matlab中GUI的各种操作,这些就像是积木一样,了解了最基本的自己通过学习和努力慢慢搭建高楼大厦就可以了。如有错误,欢迎大家指出。

    展开全文
  • 这是一个交互式工具,可帮助进行体积数据可视化,例如在研究流体流动,电场或电磁场等过程中。 它包含自己的内置帮助。 数据既可以作为输入参数传递到脚本,也可以通过交互式文件读取组件读取。 它是使用MATLAB APP ...
  • 该代码实现了libsvm-3.23工具箱中SVDD的决策边界可视化,其实现流程为: 1. 建立训练集的SVDD超球体模型 2. 利用网格法填充训练集区域 3. 预测每个网格点的得分 4. 根据网格点得分绘制等高线 5. 绘制决策边界 ...
  • 感知机(单层感知机)可视化 matlab实现。 博文链接:https://blog.csdn.net/weixin_43290523/article/details/105972154
  • 该文件是为可视化目的而创建的。 该文件适用于函数 z=x.^2 + y.^2,但是可以在代码中轻松更改该函数。 使用说明:: 运行代码后反复按回车,看看每次迭代的效果。
  • 这是一本针对物理方程的matlab程序实现的教科书,书中有大量算法实现的程序代码,对于物理学和其他相关学科以及对matlab编程有兴趣的同学,这是一本非常棒的工具书。
  • MATLAB程序设计教程 MATLAB与高等数学 第03章 MATLAB程序设计(共48页).ppt MATLAB程序设计教程 MATLAB与高等数学 第04章 MATLAB文件操作(共12页).ppt MATLAB程序设计教程 MATLAB与高等数学 第05章 MATLAB绘图...
  • MATLAB与海洋数据处理及可视化 第6讲 程序设计(共48页).ppt MATLAB与海洋数据处理及可视化 第7讲 MATLAB文件操作(共60页).ppt MATLAB与海洋数据处理及可视化 第8讲 符号计算(共40页).ppt MATLAB与海洋数据处理...
  • MATLAB与海洋数据处理及可视化 第6讲 程序设计(共48页).ppt MATLAB与海洋数据处理及可视化 第7讲 MATLAB文件操作(共60页).ppt MATLAB与海洋数据处理及可视化 第8讲 符号计算(共40页).ppt MATLAB与海洋数据处理...
  • 链传动Matlab可视化编程的实现.pdf
  • MATLAB数据可视化

    千次阅读 2019-06-28 17:36:34
    图形绘制的基本步骤 1.准备图形数据。 2.选定图形窗口及子图位置。figure.1,figure.2··· 3.调用绘图函数绘制图形。如plot函数。 4.设置坐标轴的范围,刻度及坐标网格。 5.设置线型,标记类型及其大小。...以...

    图形绘制的基本步骤

    1.准备图形数据。
    2.选定图形窗口及子图位置。figure.1,figure.2···
    3.调用绘图函数绘制图形。如plot函数。
    4.设置坐标轴的范围,刻度及坐标网格。
    5.设置线型,标记类型及其大小。
    6.添加图形注释。如:图名,坐标名称,图例,文字说明。
    7.图形的导出与打印。

    图形绘制相关指令

    1. plot指令

    线条的类型和颜色可以通过使用字符串来指定,这里用str表示。线条的默认类型是实线型

    指令使用规范
    plot(x,y)以x为横坐标,y为纵坐标,按照坐标(xi,yi)的有序排列绘制曲线
    plot(y)以1:n为横坐标,yi为纵坐标,绘制曲线
    plot(z)以横轴为实轴,纵轴为虚轴,在复平面上绘制图形
    plot(A)绘制矩阵A的列对它下标的图形
    plot(x,A)绘制矩阵A对向量x的图形
    plot(A,B)对矩阵A的行绘制矩阵B的列的图形
    plot(x,y,str)用字符串str指定的颜色和线形对y绘制x的图形
    plot(x1,y1,str1,x2,y2,str2,···)用字符串str1指定的颜色和线形对y1绘制x1的图形 ,用字符串str2指定的颜色和线形对y2绘制x2的图形

    2. subplot指令(子图绘制)

    指令使用规范
    subplot(m,n,k)将(m*n)幅子图中的第k幅图作为当前曲线的绘制图
    subplot(‘position’,[left bottom width height])在指定位置上生成子图,并作为当前曲线的绘制图

    注:在使用subplot指令后如果再想绘制充满整个图形框的图时,应先使用clf指令对图窗进行清空。

    3. 曲线标注指令

    指令说明
    title(‘text’)在图形窗口顶端的中间位置输出字符串,作为标题
    xlable(‘text’)在x轴下的中间位置输出字符串,作为标注
    ylable(‘text’)在y轴边上的中间位置输出字符串,作为标注
    zlable(‘text’)在z轴边上的中间位置输出字符串,作为标注
    text(x,y,‘text’)在图形窗口的(x,y)处写字符串“text”
    text(x,y,‘text’,‘sc’)在图形窗口的(x,y)处输出字符“text” ,给定左下角的坐标为(0.0,0.0),右上角的坐标则为(1.0,1.0)
    legend(str1,str2,…pos)在当前图上输出图例 ,并用说明性字符串str1,str2等作为标注。pos可选项目如表
    legendoff()从当前图形中清楚图例

    4. 坐标长度语句

    指令说明
    xlimx坐标范围
    ylimy坐标范围

    5. 鼠标操作的指令(交互式绘图)

    指令说明
    ginput()只能用于二维之外,[x,y] = ginput(n):用鼠标从二维图形中获得n个点的数据坐标(x,y)
    gtext()gtext(arg)用鼠标把字符串或字符串元胞数组放置到图形中作为文字说明
    zoom xon()
    zoom yon()
    zoom on()
    zoom off()
    zoom ()
    zoom out()

    6.相关函数

    函数名称函数功能
    log()以e为底数对x取对数
    length()获取矩阵最长维的长度
    sqrt()x的平方根
    abs()字符转换成ASCII
    reshape()重构数组
    rank(x)x矩阵的秩
    exp()求以e为底数的x次幂
    magic(n)返回一个n×n矩阵,由1到n^2的整数构成,行和列和相等。

    图形绘制相关语句

    1. grid语句(栅格)

    命令说明
    grid可以在on与off状态下交替转换
    grid on可以在当前图形的单位标记处添加栅格
    grid off取消栅格的显示

    2. hold语句(图形迭绘)

    命令说明
    hold为hold on和hold off语句的切换
    hold on使当前轴及图形保留下来而不被刷新,并接受即将绘制的新的曲线
    hold off不保留当前轴及图形,绘制新的曲线后,原图即被刷新

    3. 相关语句

    语句说明
    MarkerSize标记符的大小
    LineWidth线宽
    MarkerEdgeColor标记符的颜色
    MarkerFaceColor填充颜色
    msquare正方形的

    线型,标记,颜色

    1. 线型

    线型代号表示线型
    -实线
    虚线
    -.点画线
    :点线
    none无线

    2. 标记方式

    标记代号表示标记
    .
    *星号
    square正方形
    diamond菱形
    pentagram五角星形
    hexagram六角星形
    none无点
    oo
    ++
    xx
    <顶点指向左边的三角形
    >顶点指向右边的三角形
    ^正三角形
    v倒三角形

    3. 颜色

    颜色代号表示颜色
    g绿色
    m品红色
    b蓝色
    c灰色
    w白色
    r红色
    k黑色
    y黄色

    坐标轴设置

    在这里插入图片描述

    二维特殊图形函数

    函数名说明
    area填充绘图
    bar条形图
    barh水平条形图
    comet彗星图
    errorbar误差带图
    ezplot简单绘制函数图
    ezpolar简单绘制极坐标图
    feather矢量图
    fill多边形填充
    gplot拓扑图
    compass矢量图
    fplot函数绘制
    hist柱状图
    paretoPareto图
    pie饼状图
    plotmatrix分散矩阵绘制
    ribbon三维图的二维条状显示
    scatter散射图
    stem离散序列火柴杆状图
    stairs阶梯图
    rose极坐标系下的柱状图
    quiver向量场
    展开全文
  • Matlab:数据可视化

    千次阅读 2019-04-19 10:19:19
    Matlab可以绘制二维、三维和四维的数据图形,并且通过对图形的线型、颜色、标计、观察角度、坐标轴范围等属性的设置,将大量数据的内在联系及规律表现得更加细腻、完善。 离散数据及离散函数 一个二元实数标量对...

    Matlab可以绘制二维、三维和四维的数据图形,并且通过对图形的线型、颜色、标计、观察角度、坐标轴范围等属性的设置,将大量数据的内在联系及规律表现得更加细腻、完善。

    离散数据及离散函数

    一个二元实数标量对 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)可以用平面上的点来表示,一个二元实数标量数组 [ ( x 1 , y 1 ) ( x 2 , y 2 ) . . . ( x n , y n ) ] [(x_1,y_1)(x_2,y_2)...(x_n,y_n)] [(x1,y1)(x2,y2)...(xn,yn)]可以用平面上的一组点来表示。对于离散函数 Y = f ( X ) Y=f(X) Y=f(X),当 X X X为一维标量数组 [ x 1 , x 2 , . . . , x n ] [x_1,x_2,...,x_n] [x1,x2,...,xn]时,根据函数关系可以求出 Y Y Y相应的一维标量 [ y 1 , y 2 , . . . , y n ] [y_1,y_2,...,y_n] [y1,y2,...,yn]

    当把这两个向量数组在直角坐标系中用点序列来表示时,就实现了离散函数的可视化。当然,这些图形上的离散序列所反映的只是 X X X所限定的有限点上或是有限区间内的函数关系,应当注意的是,Matlab是无法实现对无限区间上的数据的可视化的。

    离散数据和离散函数的可视化

    代码清单:discrete_func.m

    % 生成两个一维实数数组
    X1=[1 2 4 6 7 8 10 11 12 14 16 17 18 20];
    Y1=[1 2 4 6 7 8 10 8 7 6 4 2 1];
    figure(1)
    plot(X1,Y1,'o','MarkerSize',15)
    
    X2=1:20;
    Y2=log(X2); % 根据log函数生成两个一维实数数组
    figure(2)
    plot(X2,Y2,'o','MarkerSize',15)
    

    进入代码文件discrete_func.m所在的目录,并运行该程序,运行结果如下
    在这里插入图片描述在这里插入图片描述连续函数

    Matlab是无法画出真正的连续函数的,因此在实现连续函数的可视化时,首先必须将连续函数用一组离散自变量上计算函数结果,然后将自变量数组和结果数组在图形中表示出来。

    当然,这些离散的点还是不能表现函数的连续性的。为了更形象地表现函数的规律及其连续变化,通常采用以下两种方法。

    (1)对离散区间进行更细的划分,逐步趋近函数的连续变化特性,直到达到视觉上的连续效果。

    (2)把每两个离散点用直线连接,以每两个离散点的直线来近似表示两点间的函数特性。

    连续函数的可视化

    代码清单:continuous_func.m

    X1=(0:12)*pi/6;Y1=cos(3*X1);
    X2=(0:360)*pi/180;Y2=cos(3*X2);
    figure(1);
    subplot(2,2,1);plot(X1,Y1,'o','MarkerSize',3);
    xlim([0 2*pi]);
    subplot(2,2,2);plot(X1,Y1,'LineWidth',2);
    xlim([0 2*pi]);
    subplot(2,2,3);plot(X2,Y2,'o','MarkerSize',3);
    xlim([0 2*pi]);
    subplot(2,2,4);plot(X2,Y2,'LineWidth',2);
    xlim([0 2*pi]);
    

    运行程序,结果如下
    在这里插入图片描述在这里插入图片描述

    展开全文
  • MATLAB数据可视化编程

    2019-11-21 09:34:40
    本课程讲解如何象在高级语言中一样利用基本的图形元素构建新的图形,以及从更深层次认识MATLAB提供的绘图工具函数,并实现更多的控制。 【课程收益】 MATLAB图形编程 MATLAB句柄图形对象 在MATLAB中定制新的图形...
  • 文件: 理解_Euler_Angles.m -- 主程序 arrow3d.m -- 生成 3d 箭头的函数 Rotations.m -- 计算参考系的方向并绘制它。 Revolve.m -- 生成轴对称曲面的函数 Extrude.m——通过挤压二维形状来产生表面 s 的功能。 ...
  • MATLAB与海洋数据处理及可视化 第6讲 程序设计(共48页).ppt MATLAB与海洋数据处理及可视化 第7讲 MATLAB文件操作(共60页).ppt MATLAB与海洋数据处理及可视化 第8讲 符号计算(共40页).ppt MATLAB与海洋数据处理...
  • - 机器人几何结构的 2D 运动学模型,例如差动驱动、三轮和四轮车辆,包括正向和反向运动学- 可配置的激光雷达、物体和机器人探测器模拟器- 占用地图中机器人车辆和传感器的可视化- MATLAB 和 Simulink 示例和文档

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,189
精华内容 5,275
关键字:

matlab如何可视化程序

matlab 订阅