搜档网
当前位置:搜档网 › matlab中gui实时绘图

matlab中gui实时绘图

matlab中gui实时绘图
matlab中gui实时绘图

https://www.sodocs.net/doc/2a2407575.html,/thread-58816-1-1.html

请教Matlab用sfunction在GUI的axes上画图的问题

我需要把simulink里面的实时仿真数据显示在GUI的axes里面,在sfunction里面通过guihandles和guidata获得了GUI中figure和axes的handle,用axes()指定GUI中的axes为当前的axes,用plot画图,运行后生成一个新的figure,在这个新的figure上画图,且只画一个点,没有连成曲线。

后来用plot(x,y,'Parent',axes_handle)画图,可以在GUI里面的axes上画图了,但是还是生成一个新的figure。

问题:

1. 在sfunction里面的axes()指定当前axes是否有用,还是只能在GUI的m文件里有用?

2. 怎么能不生成新的figure?

3. 如何不只是画出点,而是连成曲线。

在论坛里看到有人说问题已经解决,不过方法就是在plot前面用axes()设置当前的axes,我用这个方法没有用,希望大家能不吝赐教,谢谢。

我觉得是这样的问题,你试试这样解决行不?

1、把你的GUI的figure的handlevisibility属性从“callback”改为"on"。然后再用你上面的方法绘图看看。有问题的话再找我,呵呵。

2、用line函数绘图,代码如下:

首先定义初始绘图标志,并初始化,在figure的opening_Fcn函数中

global isfirst

isfirst=1;

然后在sfunction里面用如下代码:

global xdata;

global ydata;

global h1;

if isfirst==1

xdata(1)=p;%p、q为从scope得到的点

ydata(1)=q;

xdata(2)=p;

ydata(2)=q;

h1=line(xdata,ydata,'EraseMode','xor');

isfirst=0;

end

if isfirst==0

xdata(2)=p;

ydata(2)=q;

set(h1,'xdata',xdata,'ydata',ydata); end

常见的MATLAB绘图程序

常见的MATLAB绘图程序y=[3,7,9,1,5,2,8]; subplot(1,2,1),plot(y,'linewidth',2),grid x=[3,3,9;8,1,2;1,8,5;7,9,1]; subplot(1,2,2),plot(x),xlabel('x'),ylabel('y') grid on %极坐标曲线 theta=0:0.1:8*pi; polar(theta,cos(4*theta)+1/4) %对数坐标 x=0:0.1:2*pi; y=sin(x); semilogx(x,y); grid on %各种坐标系中 theta=0:0.1:6*pi; r=cos(theta/3)+1/9; subplot(2,2,1),polar(theta,r); subplot(2,2,2),plot(theta,r); subplot(2,3,4),semilogx(theta,r); subplot(2,3,5),semilogy(theta,r); subplot(2,3,6),loglog(theta,r); grid on %双y轴图形 x=0:0.01:5; y=exp(x); plotyy(x,y,x,y,'semilogy','plot'),grid grid on %复数数据 t=0:0.1:2*pi; x=sin(t); y=cos(t); z=x+i*y; plot(t,z),grid plot(z) grid on %二维图形处理 x=(0:0.1:2*pi)'; y1=2*exp(-0.5*x)*[1,-1]; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x1).*sin(2*pi*x1);

MATLAB中的绘图程序

MATLAB中的绘图程序 2011-03-25 12:45:48| 分类:matlab | 标签:绘图 matlab |字号大中小订阅 matlab中如何在指定一点画一个填充颜色的小圆 plot(1,1,'r.','markersize',50) §4.1二维作图 绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polar命令绘制极坐标图. §4.1.1 基本形式 如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出 y=[0., 0.48, 0.84, 1., 0.91, 6.14 ] 则用命令:plot(y) 它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y 的长度 Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y 是由计算机自动绘出的. 图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14]) 上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title命令可以加上.如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例:x=0:0.05:4*pi; y=sin(x); plot(x,y) grid on, title(' y=sin( x ) 曲线图' ) xlabel(' x = 0 : 0.05 : 4Pi ') 结果见下图.

图4.1.1.2 y=sin(x)的图形 表4.1.1.1 Matlab图形命令 §4.1.2 多重线 在一个单线图上,绘制多重线有三种办法. 第一种方法是利用plot的多变量方式绘制: plot(x1,y1,x2,y2,...,xn,yn) x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上. 第二种方法也是利用plot绘制,但加上hold on/off命令的配合: plot(x1,y1) hold on plot(x2,y2) hold off 第三种方法还是利用plot绘制,但代入矩阵: 如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况: (1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x向量,y的行或列的方向与x向量元素的值选择是相同的. (2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用.(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列. 还有其它一些情况,请参见Matlab的帮助系统. §4.1.3 线型和颜色的控制 如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:

Matlab程序设计与作图

(封面) 学生实验报告 学院: 课程名称: 专业班级: 姓名: 学号:

学生实验报告 一、实验综述 1、实验目的及要求 熟悉MATLAB软件的用户环境;了解MATLAB软件的一般命令;掌握 MATLAB向量、数组、矩阵操作与运算函数;掌握MATLAB软件的基本绘图命令;掌握MATLAB语言的几种循环、条件和开关选择结构,及其编程规范。 通过该实验的学习,使学生能灵活应用MATLAB软件解决一些简单问题,能借助MATLAB软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律 2、实验仪器、设备或软件 电脑、matla b 二、实验过程(实验步骤、记录、数据、分析) 1.在D 盘建立一个自己的文件夹 2.开启软件平台——MATLAB,将你建立的文件夹加入到MATLAB的搜索路径中; 3.利用帮助了解函数 max, min, sum, mean, sort, length,rand, size 和diag 的功能和用法; 4.开启MATLAB编辑窗口,键入你编写的M 文件(命令文件或函数文件); 5.保存文件(注意将文件存入你自己的文件夹)并运行; 6.若出现错误,修改、运行直到输出正确结果; 7.写出实验报告,并浅谈学习心得体会。 三、结论 1、 1. 已知矩阵要求:(1)屏幕输出 A 与 B;(2)A 的转置 A′;(3)求 A+B 的值;(4)求 A-B的值;(5)求 4A;(6)求 A×B;(7)求 A-1.

实验结果>> A=[3 1 1;2 1 2;1 2 3] A = 3 1 1 2 1 2 1 2 3 >> B=[1 1 1;2 1 0;1 0 1] B = 1 1 1 2 1 0 1 0 1 >> A' ans = 3 2 1 1 1 2 1 2 3 >> A+B ans = 4 2 2 4 2 2 2 2 4 >> A-B ans = 2 0 0 0 0 2 0 2 2 >> 4*A ans = 12 4 4

第二讲 Matlab编程与作图

第二讲Matlab编程与作图 第一部分Matlab程序设计初步 Matlab除了指令行操作的直接交互外,作为一种高级应用软件还提供了自己的编程语言。通过编写Matlab程序,可以更加方便地调用Matlab提供的各种功能强大的函数库,使得程序能完成复杂的运算处理大量的数值数据。 1、M文件简介 Matlab提供了丰富的编程语言,使得用户可以将一连串的命令写入文件,然后使用简单的函数来执行这些命令。文件被保存为文本文件,后缀为.m,比如说dblquad.m,因此Matlab的程序通常被称为M 文件。 M文件是一个文本文件,可以使用各种文本编辑器对它进行编辑和修改,比如Windows操作系统自带的记事本,也可以用Matlab 内建的M文件编辑器。 M文件分为两类,一类称为脚本(Scripts),类似于批处理文件,相当于将在Matlab命令窗口中执行的一系列指令放在一个文件中,当在命令窗口调用该文件名时,则按顺序执行其中的命令集。 例:编写求10!的程序。 另一类M文件称为函数(Function),它可以接受输入变量,并将运算结果送至输出变量,类似于数学中的函数y=f(x)。 函数M文件的基本结构: function f=fact(n) 函数定义行

%Compute a factorial value. %FACT(N) returns the factorial of N, 帮助文档%usually denoted by N! %Put simply,FACT(N) is PROD(1:N), 注释 f=prod(1:n); 函数体2、运算符 关系运算符:<, <=, >, >=, = =, ~= 逻辑运算符:与(&),或(|),非(~) 例:编写分段函数 21 () 1 -1<1 321 x x f x x x x ?> ? =≤ ? ?+≤- ? %myfun1.m function y=myfun1(x) y=(x.^2).*(x>1)+(x>-1& x<=1)+(3+2*x).*(x<=-1); 注意:1.函数名与变量名的命名法则相同,要求以字母开头,后接字母或下划线;2.函数名与保存的文件名最好一致。 3、控制流 所有的计算机编程语言都提供了控制程序流执行程序的语法,Matlab也不例外。所有的控制流语法都以end 结尾。 ⑴for 循环语句 语法:for 循环变量=数组 指令组;

Matlab常用的绘图程序

下面是一些绘图的源程序,来自Matlab自带的help文件程序1 figure t = 0:pi/20:2*pi; plot(t,sin(t),'-.r*') hold on plot(t,sin(t-pi/2),'--mo') plot(t,sin(t-pi),':bs') hold off ;title('sin(t),sin(t-pi/2),sin(t-pi)') 程序2 figure plot(t,sin(2*t),'-mo',... 'LineWidth',2,...

'MarkerEdgeColor','k',... 'MarkerFaceColor',[.49 1 .63],... 'MarkerSize',10) 程序3 load clown surface(peaks,flipud(X),... 'FaceColor','texturemap',... 'EdgeColor','none',... 'CDataMapping','direct') colormap(map) view(-35,45)

程序4 pcolor(hadamard(20)) colormap(gray(2)) axis ij axis square

程序5 n = 6; r = (0:n)'/n; theta = pi*(-n:n)/n; X = r*cos(theta); Y = r*sin(theta); C = r*cos(2*theta); pcolor(X,Y,C) axis equal tight

程序6 load mandrill figure('color','k') image(X) colormap(map) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels

Matlab画图程序

Matlab二维绘图 2010-06-08 20:41 本节介绍MATLAB 的两种基本绘图功能:二维平面图形和三维立体图形。 5.1 二维平面图形 5.1.1 基本图形函数 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是 说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m× n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘制多条曲线。 例5.1.1 画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2)

图5.1.1 函数plot 绘制的正弦曲线 在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专 门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可实现它们的功能。 表5.1.1 绘图参数表 色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式 y 黄- 实线. 点< 小于号 m 紫:点线o 圆s 正方形 c 青-. 点划线x 叉号 d 菱形 r 红- - 虚线+ 加号h 六角星 g 绿* 星号p 五角星 b 蓝v 向下三角形 w 白^ 向上三角形 k 黑> 大于号 例如,在上例中输入 >> plot(x,y1,'r+-',x,y2,'k*:') 则得图5.1.2

matlab如何画图,

(一)matlab怎样画图 浏览次数:69次悬赏分:0 |解决时间:2011-5-2 05:14 |提问者:匿名 matlab怎样画图 最佳答案 如果是画2维曲线图,就用plot 如果是画3维曲线图,就用plot3, 如果是画一图像,就用imagesc,具体参数用法,可以使用help文档 matlab 如何画图时将数据点的值在图中显示出来 浏览次数:562次悬赏分:10 |解决时间:2010-10-25 09:24 |提问者:备战考级 描点画图,在图中数据点的旁边显示该点的值,如附图所示: 问题补充: 我想达到图中的效果,用那个data curser有边框,我不想要边框,能在程序中实现吗???? 最佳答案 可以用text在图上写字符串,例如

clear clc x=[1 2 3 4 5]; y=[3 6 10 16 20]; str=[repmat(' X:',5,1) num2str(x') repmat(', Y:',5,1) num2str(y')]; plot(x,y,'-o') text(x,y,cellstr(str)) matlab绘图方法 专业软件2009-03-28 09:26:45 阅读37 评论0 字号:大中小订阅 基本xy平面绘图命令 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表(Scientific visualization)。本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲 线及二维曲面的绘制、列印及存档。 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及 y座标。下例可画出一条正弦曲线 close all; x=linspace(0, 2*pi, 100); % 100个点的x座标 y=sin(x); % 对应的y座标 plot(x,y); ==================================================== 小整理:MATLAB基本绘图函数 plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度 ==================================================== 若要画出多条曲线,只需将座标对依次放入plot函数即可: plot(x, sin(x), x, cos(x)); 若要改变颜色,在座标对後面加上相关字串即可: plot(x, sin(x), 'c', x, cos(x), 'g');

实验九 Matlab基本绘图

实验九 Matlab 基本绘图 一、实验目的 1、理解MATLAB 绘图方法 2、掌握绘制二维数据曲线图的方法 3、掌握用plot 函数和fplot 函数绘制曲线的方法 4、通过练习掌握绘制二维数据曲线图的方法和plot 函数和fplot 函数的使用 二、实验环境 1.计算机 2.MATLAB7.0集成环境 三、实验说明 1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时 四、实验内容和步骤 1.实验内容 (1)绘制下列曲线: ①33x x y - = ②2221x e y π= ③6422 2=+y x

1. 2. 3. (2)通过用plot 、fplot 、ezplot 函数绘制x y 1sin 的曲线,并分析其区别。 Plot: Fplot: Ezplot:

(3)编写程序,该程序在同一窗口中绘制函数在[] 0,2π之间的正弦曲线和余弦曲线,π,线宽为 4 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚步长为/10 线,两条曲线交点处,用红色星号标记。 (4)绘制下列图像 (1)绘制电脑磁盘使用情况的饼状图 (2)生成100 个从0 到10 之间的随机整数,绘制其直方图 (3)生成10个从0 到10 之间的随机整数,绘制其阶跃图 1. 2. 3. 2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。 (2)进入MATLAB7.0集成环境。 (3)编辑程序并进行保存。 (4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。 (5)检查程序输出结果。 五、实验报告要求 x中的向量大于一的时候用的是

MATLAB时域绘图代码

function PlotTime % data pre-processing for JZ202 Physical model % clear all % close all % clc % sensor='mnode.txt'; % sensorfilename='mnode'; % datapath='signal.ASC'; % datafilename='signal'; % judge=0; % datastart=1500; % dataend=2000; % column=[1:50]; % temp=1; global datapath; global datafilename; global datastart; global dataend; global judge;; global sensor; global sensorfilename; str1=['load' ' ' sensor]; eval(str1); str2=['arran=' sensorfilename ';']; eval(str2); str3=['load' ' ' datapath]; eval(str3); str4=['xx=' datafilename ';']; eval(str4); % judge=0; % datastart=2000; % dataend=2500; % xy=datapath; % if temp==1 % column=[]; % for i=1:(size(xy,2)-1) % column=[column i]; % end; % end;

Matlab绘图-很详细,很全面

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一.二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 一.绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:>> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t);

相关主题