Matlab中使用Plot函数动态画图方法
- 格式:docx
- 大小:21.55 KB
- 文档页数:4
plot在matlab循环的用法
在MATLAB中,plot函数可以用于绘制图形和曲线。
当需要在循环中使用plot函数时,我们可以通过以下步骤实现:
1. 首先,创建一个包含循环的MATLAB脚本或函数。
2. 在循环开始之前,设置图形属性和初始值。
3. 在每次循环迭代中,计算并更新数据。
4. 使用plot函数绘制更新后的数据。
以下是一个示例,展示了如何在MATLAB中使用循环来使用plot函数:
```matlab
% 设置初始值和参数
x = linspace(0, 2*pi, 100); % x轴上的点
y = zeros(size(x)); % 初始化y轴上的点
% 循环迭代计算和更新y轴上的点
for i = 1:length(x)
y(i) = sin(x(i)); % 计算y轴上的值
end
% 使用plot函数绘制图形
plot(x, y);
xlabel('x');
ylabel('y');
title('Sin 函数图像');
```
在上述示例中,我们使用linspace函数创建了一个包含100个点的x向量,其
范围从0到2*pi。
然后,我们初始化一个与x向量相同长度的y向量,并在循环迭
代中计算和更新y向量中的值。
最后,我们使用plot函数绘制了x和y之间的关系,并添加了x轴和y轴标签以及图形标题。
通过这种方式,在循环中使用plot函数可以让我们动态地展示不同数据的变化,帮助我们更好地分析和理解数据的特征。
matlab中plot的用法
matlab中plot函数是绘制2维图形的函数,可以自动根据输入数据
绘制出折线图、散点图等,也可以通过丰富的可选项自定义图形样式,例
如设置线条类型、绘图颜色等,用法如下:
1. 使用无参数plot指令:plot(x,y)。
以实例:x = 0:pi/100:2*pi; y = sin(x); plot(x,y)。
此时matlab将自动以y的值改变的范围来推导图像的y轴范围,自
动以x的值改变的范围来推导图像的x轴范围,并默认使用线性进行绘图。
2. 使用曲线类型参数plot指令:plot(x,y,'曲线类型')。
以实例:x = 0:pi/100:2*pi; y = sin(x); plot(x,y,'--')。
此时matlab将以“--”作为曲线类型参数,从而让曲线以点划线的
形式进行绘制。
3. 使用线条参数plot指令:plot(x,y,'线条参数')。
以实例:x = 0:pi/100:2*pi; y = sin(x); plot(x,y,'r-')。
此时matlab将以“r-”作为线条参数,从而让曲线以红色的实线进
行绘制。
plot函数的参数还可以包括更多,例如设置图形标题、自定义x轴
/y轴坐标等,帮助用户更加精确地绘制自己想要的图形。
自动化专业综合设计报告设计题目:利用MATLAB编程实现动态画图功能所在实验室:自动化系统仿真实验室指导教师:学生姓名班级计082-2 班学号200825502210撰写时间:2012-3-1 成绩评定:一.设计目的a)进一步熟悉Matlab的界面及基本操作;b)了解并掌握Matlab中一些函数的作用与使用;c)学会如何利用Matlab实现绘图功能,并可使坐标系动态设置。
二.设计要求外部输入数据动态设置坐标系,然后绘制图形,并举例演示。
三.设计内容Matlab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
我设计的题目是利用matlab的GUI编程实现动态的画图功能。
GUI运行时主界面如下:在文本输入框中分别输入x、y、z的值,其中y的值可以是包含x的表达式,z的值可以是包含x和y的表达式。
当y和z的值均为0时,绘制x的曲线;当z的值为0时,绘制二维图形;当z的值不为0时,可以绘制三维图形和三维曲面图。
设计步骤如下:1:打开matlab软件2:建立一个GUI文件,保存到work中3:添加控件主界面,包含的控件有:EditText,StaticText,Axes,PushButton。
其中EditText用于xyz值的输入,StaticText用于显示提示,Axes用于显示绘制的图形,PushButton作为绘图按钮。
4:编写程序程序的编写主要分为两个部分,一个是数据的采集,一个是绘图。
数据采集部分用到的函数主要是str2num、eval函数,具体程序如下: X值输入:function editX_Callback(hObject, eventdata, handles)clchandles.x=str2num(get(hObject,'string'))handles.xhandles=gcboguidata(hObject, handles);Y值输入:function edit2_Callback(hObject, eventdata, handles)clcx=handles.x;handles.y=eval(get(hObject,'string'))handles.yhandles=gcboguidata(hObject, handles);Z值输入:function edit3_Callback(hObject, eventdata, handles)clcx=handles.x;y=handles.y;handles.z=eval(get(hObject,'string'));if handles.z==0set(handles.pushbutton1,'Visible','on');set(handles.pushbutton4,'Visible','off');set(handles.pushbutton5,'Visible','off');elseset(handles.pushbutton1,'Visible','off');set(handles.pushbutton4,'Visible','on');set(handles.pushbutton5,'Visible','on');endhandles.zhandles=gcboguidata(hObject, handles);handles.zhandles=gcboguidata(hObject, handles);绘图部分用到的函数主要有axis(),plot(),plot3(),具体程序如下:绘制二维图形:clcx=handles.x;y=handles.y;handles.x=str2num(get(handles.xhandles,'string'))handles.y=eval(get(handles.yhandles,'string'))handles.z=eval(get(handles.zhandles,'string'));xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;if y==0q=plot(handles.x)elsev=[xmin xmax ymin ymax]; axis(v);q=plot(handles.x,handles.y);endxlabel('X Öá');ylabel('YÖá');绘制三维图形:function pushbutton4_Callback(hObject, eventdata, handles) clcx=handles.x;y=handles.y;handles.y=eval(get(handles.yhandles,'string'))handles.z=eval(get(handles.zhandles,'string'));xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;zmin=min(handles.z)-min(handles.z)/10;zmax=max(handles.z)+min(handles.z)/10;v=[xmin xmax ymin ymax zmin zmax];axis(v);q=plot3(handles.x,handles.y,handles.z);绘制三维曲面图:function pushbutton5_Callback(hObject, eventdata, handles) clcx=handles.xy=handles.yhandles.x=eval(get(handles.editX,'string'));handles.y=eval(get(handles.yhandles,'string'))xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;zmin=min(handles.z)-min(handles.z)/10;zmax=max(handles.z)+min(handles.z)/10;v=[xmin xmax ymin ymax zmin zmax];axis(v);x1=ones(size(handles.y))*handles.x;y1=handles.y*ones(size(handles.x));r=sqrt(x1.^2+ y1.^2)+eps;z=sin(r)./rq=mesh(z);四.设计实验结果及分析当x=-10:0.01:100,y=sin(x),z=0时,得到的图形如下:当x=-10:0.01:10,y=sin(x),z=sin(x)+cos(y)时,得到的图形如下(三维图形):当x=-10:0.1:10,y=x’,z=1时,得到的图形如下(三维曲面图):五.设计感受我之前对于matlab编程的认识只是局限于M文件编程以及命令窗口编程。
matlab动态绘图Animation 主要是查看matlab帮助的Animation动画页⾯1、函数播放录制的电影桢将轴或图形捕获为影⽚帧返回与电影帧相关联的图像数据将图像转换为电影帧创建动画线⼆维彗星图三维彗星图更新数据并处理回调指定数据源后刷新图中的数据线动画2、官⽅例⼦(1)画出sin(x)图像,并且追踪⼀个点%%%创建sinxx = linspace(0,10,1000);y = sin(x);plot(x,y)hold onp = plot(x(1),y(1),'o','MarkerFaceColor','red'); %标记第⼀个点,设置为红⾊hold offaxis manual %将轴限制模式设置为⼿动,以避免在整个动画循环中重新计算限制。
%%%使⽤drawnow动态画图for k = 2:length(x)p.XData = x(k);p.YData = y(k);drawnowend(2)画出sin(x)图像,追踪⼀个点,显⽰坐标变换%%%画出sin(x)图像x = linspace(-6,6,1000);y = sin(x);plot(x,y)axis manual%%%设置图⽚格式ax = gca;h = hgtransform('Parent',ax);hold onplot(x(1),y(1),'o','Parent',h);hold offt = text(x(1),y(1),num2str(y(1)),'Parent',h,...'VerticalAlignment','top','FontSize',14);%%%使⽤drawnow动态画图for k = 2:length(x)m = makehgtform('translate',x(k)-x(1),y(k)-y(1),0);h.Matrix = m;t.String = num2str(y(k));drawnowend(3)这个例⼦展⽰了如何通过更新三⾓形的数据属性来让⼀个三⾓形在圆的内部循环。
matlab中plot绘制函数(原创版)目录一、matlab 中 plot 函数的基本用法二、plot 函数的坐标轴参数设置三、plot 函数的线型、颜色和宽度设置四、使用 plot 函数绘制函数 y=sin(x) 的图形五、使用 hold on 语句在同一图上绘制多个图形六、注意事项和常见问题正文matlab 中 plot 函数是一个非常常用的绘图函数,它可以用来绘制各种函数的图形。
下面我们来详细了解一下 matlab 中 plot 函数的基本用法以及一些参数设置的方法。
一、matlab 中 plot 函数的基本用法plot 函数的基本语法如下:```matlabplot(x,y)```其中,x 和 y 分别是需要绘制的图形的 x 轴和 y 轴的数据。
例如,我们可以使用以下代码绘制一个简单的正弦函数的图形:```matlabx = 0:pi/10:2*pi;y = sin(x);plot(x,y)```二、plot 函数的坐标轴参数设置plot 函数中,可以通过设置坐标轴参数来调整图形的显示效果。
常用的坐标轴参数包括:- xlabel:x 轴标签- ylabel:y 轴标签- title:图形标题- grid:是否显示网格线例如,我们可以使用以下代码设置坐标轴参数:```matlabx = 0:pi/10:2*pi;y = sin(x);plot(x,y,"-",xlabel"x 轴参数",ylabel"y 轴参数",title"正弦函数图形")grid on```三、plot 函数的线型、颜色和宽度设置plot 函数中,可以通过设置线型、颜色和宽度来调整图形的显示效果。
常用的设置方法如下:- 线型:使用 "-"、"--"、":" 等符号来设置线型- 颜色:使用颜色字符或颜色编号来设置颜色- 宽度:使用 "LineWidth" 参数来设置线宽例如,我们可以使用以下代码设置线型、颜色和宽度:```matlabx = 0:pi/10:2*pi;y = sin(x);plot(x,y,"-",Color="red",LineWidth=2)```四、使用 plot 函数绘制函数 y=sin(x) 的图形我们已经在前面介绍了如何使用 plot 函数绘制正弦函数的图形,这里就不再赘述。
MATLAB是一种强大的科学计算软件,它提供了丰富的绘图函数,其中包括plot3函数,该函数能够绘制三维曲线图。
在本文中,我们将详细介绍plot3函数的用法,包括参数的设置和实际应用。
1. plot3函数的基本用法plot3函数是MATLAB中用于绘制三维曲线图的函数,其基本语法为:plot3(X,Y,Z)其中,X、Y和Z分别是包含曲线上点的x、y和z坐标的向量。
当调用plot3函数时,MATLAB会将这些点连成曲线,并绘制在三维坐标系中。
2. 参数设置plot3函数可以接受多达四个输入参数,使用不同的参数可以实现不同的效果。
常用的参数包括线型、线宽和颜色等。
以下是plot3函数中常用的参数设置方法:- 指定线型:plot3(X,Y,Z,'LineStyle'),其中LineStyle可以是实线('-')、虚线('--')、点线(':')等。
- 指定线宽:plot3(X,Y,Z,'LineWidth',width),其中width为线的宽度。
- 指定颜色:plot3(X,Y,Z,'Color',color),其中color可以是预定义的颜色('r'表示红色)或RGB值。
3. 点和线的样式设置除了基本的参数设置外,plot3函数还可以根据需要设置点和线的样式。
可以使用plot3(X,Y,Z,'o')来绘制原点,使用plot3(X,Y,Z,'*')来绘制星号等。
这些样式设置可以使曲线图更加美观和易于理解。
4. 多个曲线的绘制在实际应用中,可能需要在同一张图中绘制多条曲线,这时可以多次调用plot3函数来实现。
例如:plot3(X1,Y1,Z1)hold onplot3(X2,Y2,Z2)hold off这样就可以在同一张图中绘制出两条曲线。
需要注意的是,为了在同一张图中绘制多条曲线,需要使用hold on和hold off命令来控制绘图区的保持和释放。
matlab的plot函数用法Matlab是一款常见的数据处理工具,有着广泛的应用前景,plot 函数也是其中重要的一个仿函数,它可以通过画数据来表示数据之间的关系,常见的有矩形图和折线图,可以用来表示一定范围内数据的变化及趋势,所以plot函数的应用非常的广泛。
一、plot函数的调用1. plot函数的一般调用,语法如下:plot(X,Y),其中X和Y分别代表X轴和Y轴的数据,按照数据的大小从左至右依次排列,Matlab 将自动根据X和Y的数据绘制出线图。
2. plot函数支持多种形式的调用,语法如下:plot(X,Y,FormatString),其中FormatString代表图形的风格,支持常见的多种风格,例如‘-’代表实线,’--’代表虚线,’:’代表点线,’x’代表十字图等。
二、plot函数的特殊参数设置1. markerSize参数,可以设置画图的点的大小,语法如下:plot(X,Y,’markerSize’,10),其中10为点的大小,可设置为任意数值。
2. lineWidth参数,可以设置画图线的宽度,语法如下:plot(X,Y,’lineWidth’,3),其中3为线的宽度,可设置为任意值。
3. lineStyle参数,可以设置画图线的风格,语法如下:plot(X,Y,’lineStyle’,-.),其中‘-.代表点虚线,可设置为任意风格,比如‘-’代表实线,’--’代表虚线,’:’代表点线,’x’代表十字图等。
4. marker参数,可以设置画图点的形状,语法如下:plot(X,Y,’marker’,o,其中‘o’代表圆形,同样可设置为任意点的形状,比如圆形‘o’,正方形‘s’,星形‘*’,三角形‘^’,十字形‘x’等。
5. color参数,可以设置画图的颜色,语法如下:plot(X,Y,’color’,r,其中‘r’代表红色,可以设置任意颜色类型,比如‘k’代表黑色,’b’代表蓝色,’r’代表红色,’g’代表绿色,’y’表示黄色,’m’表示洋红色等。
∙博文打印预览∙打印图片∙选择字号:超大大中小∙阿元[转载]matlab plot阿元/xywatersky 2010-12-30 09:48:08原文地址:matlab plot作者:blueboylovesky/106503841.html1 plot(x):x为长度为n的数值向量,坐标的纵坐标是向量x,横坐标为matlab系统根据x向量的元素序号自动生成的从1开始的向量。
2 plot(x,y):纵坐标是y,横坐标是x。
x,y向量的数目必须相等。
3 axis([x1,x2,y1,y2]):设定坐标轴的范围。
4 plot (x):x为m*n的矩阵,plot(x)命令为矩阵的每一列画出一条线,共n条,曲线的横坐标为向量1:m,m是矩阵的行数。
5 plot(z): 可以复制复向量曲线它与(plot(real(z),imag(z))等效,以实部为横坐标,虚部为纵坐标。
6 plot(x1,y1,x2,y2...) :绘制多条曲线绘制图形的一般步骤:1 曲线数据备份对于二维曲线,横坐标和纵坐标数据变量;对于三维曲面,矩阵参变量和对应的函数值2 指定图形窗口和子图位置:默认时,打开Figure No.1窗口或当前窗口,当前子图;也可以打开指定的图形窗口和子图3 设置曲线的绘制方式:线型,色彩,数据点形4 设置坐标轴:坐标的范围,刻度和坐标分格5 图形注释图名,坐标名,图例,文字说明6 着色,明暗,灯光,材质处理(仅对三维图形处理)7 视点,三度(横,纵,高)比(仅对三维图形处理)8 图形的精细修饰(图形句柄操作):利用对象属性值设置利用图形窗工具条进行设置说明:1)步骤1和3是最基本的绘图步骤,matlab一般只需要这2步就可以绘制出图形。
2)步骤2一般在图形较多的情况下,需要制定图形窗口,子图时使用。
3)除了1 2 3的其他步骤,用户可以根据自己的需要改变前后次序。
多个图形绘制的方法:1 指定图形窗口需要多个图形窗口同时打开时,可以使用figure语句:figure (n):figure(1),figure(2)...2 同一个窗口多个子图可以通过在plot命令前加上subplot命令来实现subplot(m,n,k) % 使m*n幅子图中的第k幅成为当前图说明:将图形窗口划分为m*n幅子图,k是当前子图的编号。
Matlab中使用Plot函数动态画图方法总结Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,下面总结几种方法。
一. AXIS 移动坐标系这种方法是最简单的一种方法,适合于数据已经全部生成的场合,先画图,然后移动坐标轴。
实例代码如下:%%%先画好,然后更改坐标系%在命令行中使用Ctrl+C 结束t=0:0.1:100*pi;m=sin(t);plot(t,m);x=-2*pi;axis([x,x+4*pi,-2,2]);grid onwhile 1if x>max(t)break;endx=x+0.1;axis([x,x+4*pi,-2,2]); %移动坐标系pause(0.1);end二. Hold On 模式此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一幀图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。
例如:%%% Hold On 法% 此种方法只能点,或者分段划线hold offt=0;m=0;t1=[0 0.1]; %要构成序列m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=-1.5*pi;grid on;for i=1:100hold ont=0.1*i; %下一个点m=t-floor(t);t1=t1+0.1; %下一段线(组)m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=x+0.1;axis([x x+2*pi -1.5 1.5]);pause(0.01);end三. Plot 背景擦除模式这种模式比较适合画动画,效率比较高,刷新闪烁小,适合即时数据,最终的Line结构数据完整。
matlab动画制作例子
在MATLAB中,你可以使用`pause`和`drawnow`命令来制作动画。
以下是一个简单的例子,它展示了如何创建一个动画,该动画显示一个点在二维平面上沿一圆形路径移动。
```matlab
% 初始化参数
t = 0::2pi; % 时间向量
x = sin(t); % x坐标
y = cos(t); % y坐标
% 创建图形窗口
figure;
% 循环动画
for k = 1:length(t)
% 绘制当前点的位置
plot(x(k), y(k), 'ro');
% 添加标题和标签
title('点在圆上的移动');
xlabel('x');
ylabel('y');
% 暂停并更新图形,以便可以看到动画效果
pause();
drawnow;
end
```
这个脚本将会创建一个动画,显示一个点在二维平面上沿着一个圆形路径移动。
这个动画是通过在一个循环中绘制每个点的位置并暂停一段时间来创建的。
`drawnow`命令将立即更新图形窗口,使得你可以看到动画效果。
注意:MATLAB的版本和环境可能会影响动画的表现。
在一些环境中,可能需要使用不同的命令或参数才能获得最佳的动画效果。
matlab动态波形绘制方法
在MATLAB中,你可以使用多种方法来绘制动态波形。
下面是一个基本的示例,演示如何使用`plot`函数来绘制动态波形:
```matlab
% 初始化时间向量
t = 0::10;
% 初始化波形数据
y = zeros(size(t));
% 循环来更新波形数据
for i = 1:length(t)
% 假设我们在每个时间点都更新波形数据
y(i) = sin(t(i));
% 使用pause函数暂停绘图,以便你可以看到更新的波形
pause();
% 清除当前图形,以便我们可以重新绘制它
clf;
% 绘制新的波形
plot(t, y);
% 添加标题和标签
title('动态波形');
xlabel('时间 (s)');
ylabel('幅度');
end
```
这个示例中,我们首先创建了一个时间向量`t`和一个与时间向量大小相同的零向量`y`。
然后,我们使用一个for循环来更新`y`的每个元素,并使用
`pause`函数暂停程序以便我们可以看到更新的波形。
在每次循环中,我们都使用`clf`函数清除当前的图形,然后使用`plot`函数绘制新的波形。
最后,我们添加了标题和标签。
注意,这个示例中的`pause`函数将暂停程序秒。
你可以根据需要调整这个值。
如果你希望更快或更慢地更新波形,可以减小或增大这个值。
【matlab基础篇03】⼀⽂带你全⾯了解plot绘图函数的使⽤(超详细+图⽂并茂)快速⼊门matlab,系统地整理⼀遍,如何你和我⼀样是⼀个新⼿,那么此⽂很适合你;⽂章⽬录1 前⾔如果你是和我⼀样的⼩⽩,强烈推荐看看这⾥,需要合理地利⽤官⽅的⽂档,通常我觉得官⽅⽂档是最好的,没有之⼀,在命令终端输⼊help plot,可以看到详细的帮助⽂档;具体如下;>> help plotplot Linear plot.plot(X,Y) plots vector Y versus vector X. If X or Y is a matrix,then the vector is plotted versus the rows or columns of the matrix,whichever line up. If X is a scalar and Y is a vector, disconnectedline objects are created and plotted as discrete points vertically atX.plot(Y) plots the columns of Y versus their index.If Y is complex, plot(Y) is equivalent to plot(real(Y),imag(Y)).In all other uses of plot, the imaginary part is ignored.Various line types, plot symbols and colors may be obtained withplot(X,Y,S) where S is a character string made from one elementfrom any or all the following 3 columns:b blue . point - solidg green o circle : dottedr red x x-mark -. dashdotc cyan + plus -- dashedm magenta * star (none) no liney yellow s squarek black d diamondw white v triangle (down)^ triangle (up)< triangle (left)> triangle (right)p pentagramh hexagramFor example, plot(X,Y,'c+:') plots a cyan dotted line with a plusat each data point; plot(X,Y,'bd') plots blue diamond at each datapoint but does not draw any line.plot(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined bythe (X,Y,S) triples, where the X's and Y's are vectors or matricesand the S's are strings.For example, plot(X,Y,'y-',X,Y,'go') plots the data twice, with asolid yellow line interpolating green circles at the data points.The plot command, if no color is specified, makes automatic use ofthe colors specified by the axes ColorOrder property. By default,plot cycles through the colors in the ColorOrder property. Formonochrome systems, plot cycles over the axes LineStyleOrder property.Note that RGB colors in the ColorOrder property may differ fromsimilarly-named colors in the (X,Y,S) triples. For example, thesecond axes ColorOrder property is medium green with RGB [0 .5 0],while plot(X,Y,'g') plots a green line with RGB [0 1 0].If you do not specify a marker type, plot uses no marker.If you do not specify a line style, plot uses a solid line.plot(AX,...) plots into the axes with handle AX.plot returns a column vector of handles to lineseries objects, onehandle per plotted line.The X,Y pairs, or X,Y,S triples, can be followed byparameter/value pairs to specify additional propertiesof the lines. For example, plot(X,Y,'LineWidth',2,'Color',[.6 0 0])will create a plot with a dark red line width of 2 points.Examplex = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));plot(x,y,'--rs','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',...'MarkerSize',10)与plot相关的函数还有plottools, semilogx, semilogy, loglog, plotyy, plot3, grid,title, xlabel, ylabel, axis, axes, hold, legend, subplot, scatter.2 plot2.1 显⽰正弦波显⽰⼀个简单的正弦函数;x=0:2*pi/100:2*pi;y=sin(x);plot(x,y);2.2 修改颜⾊参数颜⾊bgrcmykw下⾯修改为红⾊:x=0:2*pi/100:2*pi;y=sin(x);plot(x,y,'r');结果如下:2.3 修改点的形状参数形状图标-solido circlex x-mark+plus*stars squared diamondv triangle (down)^triangle (up)<triangle (left)>triangle (right)ppentagram h hexagram参数形状图标将点形状显⽰为六边形;x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'h','MarkerSize',10);结果如下:相关参数:MarkerEdgeColor :点边框颜⾊;MarkerFaceColor :点表⾯颜⾊;MarkerSize :点的⼤⼩;2.4 修改线的形状符号形状:dotted -.dashdot --dashedx=0:2*pi/20:2*pi;y=sin(x);plot(x,y,':','LineWidth',3);LineWidth 的参数为线宽;x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'-.','LineWidth',3);x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'--','LineWidth',3);2.5 多个参数修改下⾯修改多个参数属性显⽰⼀下正弦波;x = 0:2*pi/100:2*pi;y = sin(x);plot(x,y,'--rs','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',... 'MarkerSize',10);结果如下:3 subplotsubplot 的使⽤⽅法如下:subplot Create axes in tiled positions.H = subplot(m,n,p), or subplot(mnp), breaks the Figure windowinto an m-by-n matrix of small axes, selects the p-th axes forthe current plot, and returns the axes handle. The axes arecounted along the top row of the Figure window, then the second row, etc. For example,subplot(2,1,1), PLOT(income)subplot(2,1,2), PLOT(outgo)通俗的讲:subplot(⾏,列,index)注意:plot函数要在subplot表明位置之后再调⽤。
%%%先画好,然后更改坐标系%在命令行中使用 Ctrl+C 结束t=0:0.1:100*pi;m=sin(t);plot(t,m);x=-2*pi;axis([x,x+4*pi,-2,2]);grid onwhile 1if x>max(t)break;endx=x+0.1;axis([x,x+4*pi,-2,2]); %移动坐标系pause(0.1);end%%% Hold On 法% 此种方法只能点,或者分段划线hold offt=0;m=0;t1=[0 0.1]; %要构成序列m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=-1.5*pi;axis([x x+2*pi -1.5 1.5]);grid on;for i=1:100hold ont=0.1*i; %下一个点m=t-floor(t);t1=t1+0.1; %下一段线(组)m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5); x=x+0.1;axis([x x+2*pi -1.5 1.5]);pause(0.01);end%%%采用背景擦除的方法,动态的划点,并且动态改变坐标系% t,m 均为一行,并且不能为多行t=0;m=0;p = plot(t,m,'*',...'EraseMode','background','MarkerSize',5);x=-1.5*pi;axis([x x+2*pi -1.5 1.5]);grid on;for i=1:1000t=0.1*i; %两个变量均不追加m=sin(0.1*i);set(p,'XData',t,'YData',m)x=x+0.1;drawnowaxis([x x+2*pi -1.5 1.5]);pause(0.1);end%%%采用背景擦除的方法,动态的划线,并且动态改变坐标系% 多行划线t=[0]m=[sin(t);cos(t)]p = plot(t,m,...'EraseMode','background','MarkerSize',5);x=-1.5*pi;axis([x x+2*pi -1.5 1.5]);grid on;for i=1:1000t=[t 0.1*i]; %Matrix 1*(i+1) m=[m [sin(0.1*i);cos(0.1*i)]]; %Matrix 2*(i+1) set(p(1),'XData',t,'YData',m(1,:))set(p(2),'XData',t,'YData',m(2,:))drawnowx=x+0.1;axis([x x+2*pi -1.5 1.5]);pause(0.5);endMatlab中使用Plot函数动态画图方法总结本文来自: MATLAB爱好者论坛(MATLABFAN) 作者: admin日期: 2009-8-17 11:23 阅读: 550人打印收藏大中小Plot, Matlab, 函数, 动态, 画图Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,下面总结几种方法。
matlab 函数subplot,plot和hold on及调用方法-回复Matlab是一种功能强大的数学软件,用于数据可视化和算法开发等。
在Matlab中,我们可以使用subplot、plot和hold on等函数来创建多个子图、绘制图形和在图形上叠加多个曲线。
在本文中,我们将逐步详细介绍这些函数的功能和使用方法。
首先,让我们从subplot函数开始。
subplot函数用于在一张图中创建多个子图,它的基本语法如下:subplot(rows, columns, plotindex)其中,rows表示子图的行数,columns表示子图的列数,plotindex表示当前子图的位置。
例如,如果我们要创建一个2行2列的子图,并在第一个子图中绘制一个sin函数曲线,我们可以使用如下代码:subplot(2, 2, 1);x = linspace(0, 2*pi, 100);y = sin(x);plot(x, y);上述代码中,我们使用subplot(2, 2, 1)创建了一个2行2列的子图,并选择了第一个子图作为当前子图。
然后,我们使用linspace函数创建了一个从0到2π的等间隔向量x,用于表示sin函数的自变量。
接着,我们使用sin函数计算了对应的因变量y,并使用plot函数将x和y绘制成一条曲线。
接下来,让我们来讨论plot函数。
plot函数用于绘制二维曲线,在Matlab 中非常常用。
它的基本语法如下:plot(x, y)其中,x和y分别表示曲线的自变量和因变量。
例如,如果我们要绘制一个简单的抛物线曲线y = x^2,我们可以使用如下代码:x = linspace(-10, 10, 100);y = x.^2;plot(x, y);上述代码中,我们使用linspace函数创建了一个从-10到10的等间隔向量x,用于表示抛物线的自变量。
接着,我们使用元素级乘法运算符.^计算了对应的因变量y,并使用plot函数将x和y绘制成一条抛物线曲线。
matlab plot函数用法
Matlab中的plot函数是用于绘制图形和可视化数据的常用函数。
使用plot函数,可以将数据以点、线或曲线的形式展现出来,从而
更加直观地理解和分析数据。
plot函数的基本用法是:
plot(x,y)
其中x和y是需要绘制的数据点的坐标。
如果x和y中的数据点数量不同,Matlab会自动调整x或y的长度,以使它们匹配。
除了基本用法外,plot函数还可以指定属性选项,以控制绘制
的图形的样式和外观。
例如,可以使用颜色、线条样式、点标记等属性选项来自定义绘制的图形。
plot函数的常用属性选项包括:
- 颜色属性:使用颜色缩写来指定数据点和线条的颜色。
例如,'r'表示红色,'b'表示蓝色,'g'表示绿色,'k'表示黑色。
- 线条样式属性:使用线条样式缩写来指定线条的样式。
例如,'-'表示实线,'--'表示虚线,':'表示点线,'-.'表示点划线。
- 点标记属性:使用点标记缩写来指定数据点的标记。
例如,'o'表示圆圈,'+'表示十字,'x'表示叉号,'s'表示正方形。
除了这些属性选项外,plot函数还支持许多其他属性选项,例
如线宽、标签等。
总之,plot函数是Matlab中非常强大的绘图函数之一,可以帮助用户更好地理解和分析数据。
熟练掌握plot函数的用法和属性选
项,可以使Matlab绘图更加灵活和高效。
matlab函数subplot,plot和holdon及调用方法在MATLAB中,我们常常会用到一些函数来进行图像的绘制。
今天我们来学习几个非常重要的函数,分别是subplot、plot、holdon以及它们的调用方法。
一、subplotsubplot是一个MATLAB的基本函数,它的作用是在同一个图形窗口中创建多个不同的图形窗口。
subplot函数的基本语法如下:subplot(m,n,p)其中,m表示当前图像窗口的行数,n表示当前图像窗口的列数,p表示当前图像窗口的编号。
例如,subplot(2,2,1)会在一个窗口中创建两个列的图像,其中第1个图像窗口是第1个图像。
二、plotplot函数是用来绘制二维图形的主要函数。
它的基本语法如下:plot(x,y)其中,x和y分别表示x轴和y轴的数据。
例如,如果我们有一个向量x=[1,2,3,4],另一个向量y=[1,4,9,16],那么我们就可以使用plot(x,y)来绘制一条从(1,1)到(4,9)的直线。
三、holdonholdon是一个MATLAB的常用命令,它的作用是将当前的图形窗口保持住,并在下一个绘图命令之后继续绘制图形。
例如,如果我们使用plot函数绘制了两个图形,并使用了holdon命令,那么这两个图形将会被合并成一个图形。
四、调用方法在实际使用中,我们常常会用到subplot、plot和holdon等函数组合起来进行绘图。
例如,如果我们想要在一个窗口中绘制两个不同的图形,我们可以先使用subplot函数创建一个窗口,然后在不同的子图上分别绘制两个图形。
具体步骤如下:1.使用subplot函数创建一个窗口,并指定行数、列数和编号;2.在第一个子图上绘制第一个图形;3.使用holdon命令将当前窗口保持住;4.在第二个子图上绘制第二个图形;5.关闭当前窗口。
以上就是Matlab函数subplot、plot和holdon及调用方法的基本介绍。
Matlab中使用Plot函数动态画图方法总结
本文来自: MATLAB爱好者论坛(MATLABFAN) 作者: admin日期: 2009-8-17
11:23 阅读: 550人打印收藏大中小
Plot, Matlab, 函数, 动态, 画图
Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,下面总结几种方法。
一. AXIS 移动坐标系
这种方法是最简单的一种方法,适合于数据已经全部生成的场合,先画图,然后移动坐标轴。
实例代码如下:
1.%%
2.%先画好,然后更改坐标系
3.%在命令行中使用Ctrl+C结束
4.t=0:0.1:100*pi;
5.m=sin(t);
6.plot(t,m);
7.x=-2*pi;
8.axis([x,x+4*pi,-2,2]);
9.grid on
10.while 1
11.if x>max(t)
12.break;
13.end
14.x=x+0.1;
15.axis([x,x+4*pi,-2,2]); %移动坐标系
16.pause(0.1);
17.end
复制代码
二. Hold On 模式
此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一幀图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。
例如:
1.%%
2.% Hold On 法
3.% 此种方法只能点,或者分段划线
4.hold off
5.t=0;
6.m=0;
7.t1=[0 0.1]; %要构成序列
8.m1=[sin(t1);cos(t1)];
9.p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);
10.x=-1.5*pi;
11.axis([x x+2*pi -1.5 1.5]);
12.grid on;
13.
14.for i=1:100
15. hold on
16. t=0.1*i; %下一个点
17. m=t-floor(t);
18. t1=t1+0.1; %下一段线(组)
19. m1=[sin(t1);cos(t1)];
20. p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);
21. x=x+0.1;
22. axis([x x+2*pi -1.5 1.5]);
23. pause(0.01);
24.end
复制代码
三. Plot 背景擦除模式
这种模式比较适合画动画,效率比较高,刷新闪烁小,适合即时数据,最终的Line 结构数据完整。
了解此方法之前要搞清楚 Plot函数的原型是什么: Plot函数,输入为 X-Y (-X)坐标元组、以及“属性”-“值对,输出为一个列向量(每条曲线岁对应的Line结构 Handle,每一行代表一个线条的handles), 每一线条都有 XData,YData 向量。
如果你画了2条线,那么会返回2×1的向量。
重新画图不需要重新书写 Plot,只需要刷新图像即可,使用drawnow函数。
完整实例如下:
1. 画一个点的动画:
1.%%
2.%采用背景擦除的方法,动态的划点,并且动态改变坐标系
3.% t,m均为一行,并且不能为多行
4.t=0;
5.m=0;
6.p = plot(t,m,'*',...
7. 'EraseMode','background','MarkerSize',5);
8.x=-1.5*pi;
9.axis([x x+2*pi -1.5 1.5]);
10.grid on;
11.
12.for i=1:1000
13. t=0.1*i; %两个变量均不追加
14. m=sin(0.1*i);
15. set(p,'XData',t,'YData',m)
16. x=x+0.1;
17. drawnow
18. axis([x x+2*pi -1.5 1.5]);
19. pause(0.1);
20.end
复制代码
2. 动态多条曲线(即时数据)
1.%%
2.%采用背景擦除的方法,动态的划线,并且动态改变坐标系
3.% 多行划线
4.
5.t=[0]
6.m=[sin(t);cos(t)]
7.p = plot(t,m,...
8. 'EraseMode','background','MarkerSize',5);
9.x=-1.5*pi;
10.axis([x x+2*pi -1.5 1.5]);
11.grid on;
12.
13.
14.for i=1:1000
15. t=[t 0.1*i]; %Matrix 1*(i+1)
16. m=[m [sin(0.1*i);cos(0.1*i)]]; %Matrix 2*(i+1)
17. set(p(1),'XData',t,'YData',m(1,:))
18. set(p(2),'XData',t,'YData',m(2,:))
19. drawnow
20. x=x+0.1;
21. axis([x x+2*pi -1.5 1.5]);
22. pause(0.5);
23.end
复制代码
上面的这几个画图方式的示例只是简单的for循环,是单线程的,如果是涉及到GUI的编程,那么请使用Timer来完成这件事情,Timer是我在Matlab中实现多线程唯一方法(没有找到别的方法).。