-
Matlab 的动态曲线绘图
2017-10-09 21:28:53动态曲线的绘制 This example shows how to create an animation of two growing lines. The animatedline function helps you to optimize line animations. It allows you to add new points tLine Animations
动态曲线的绘制This example shows how to create an animation of two growing lines. The animatedline function helps you to optimize line animations. It allows you to add new points to a line without redefining existing points.
接下的例子将展示如何生成有关两根动态的曲线动画。
1、使用了animateline 函数帮助我们生成动态曲线。
2、该例子可以使我们在不用修改原有的数据基础上添加新的数据。
Contents
内容- Create Lines and Add Points
- 生成曲线和添加点
- Query Points of Line
- 线段上点队列的生成
Create Lines and Add Points
Create two animated lines of different colors. Then, add points to the lines in a loop. Set the axis limits before the loop so that to avoid recalculating the limits each time through the loop. Use a docid:matlab_ref.f56-719157 or drawnow limitrate command to display the updates on the screen after adding the new points.
生成两条不同颜色的曲线。在这之后,将点的运动添加至线段的循环当中。为了避免在循环中重复计算运算还有展示区间需要先设置图像的大小。
添加新的点后可以使用drawnow limitrate 命令展示数据的更新。
a1 = animatedline('Color',[0 .7 .7]); a2 = animatedline('Color',[0 .5 .5]);%区分颜色
axis([0 20 -1 1])%设置图像区间,由图可见0-20位横坐标,-1-1为纵坐标 x = linspace(0,20,10000);%x的区间设定
%y = linspace(
generatesx1,x2
,n
)n
points. The spacing between the points is(x2-x1)/(n-1)
.X点的步进 for k = 1:length(x); % first line xk = x(k);%更新x坐标 ysin = sin(xk); addpoints(a1,xk,ysin);%点的添加 % second line ycos = cos(xk); addpoints(a2,xk,ycos); % update screen drawnow limitrate %命令 endThe animation shows two lines that grow as they accumulate data.
Query Points of Line
Query the points of the first animated line.
[x,y] = getpoints(a1);
x and y are vectors that contain the values defining the points of the sine wave.
-
qlineseries绘制动态曲线_matlab 怎么动态画曲线
2021-01-16 18:17:52展开全部可以用Matlab制作gif来实现,下面是一个示例代码:%适用于在一幅图中表现给e69da5e887aa62616964757a686964616f31333339666662图过程,即图形的增长过程%主要用来绘制三维的欧拉公式clc;clear;clf;closeall;...展开全部
可以用Matlab制作gif来实现,下面是一个示例代码:%适用于在一幅图中表现给e69da5e887aa62616964757a686964616f31333339666662图过程,即图形的增长过程
%主要用来绘制三维的欧拉公式
clc;clear;clf;close all;
%获得数据
tmax = 4*pi;
t = 0:0.01:tmax;
tmp = exp(1i*t);
x = real(tmp);
y = imag(tmp);
[a,b] = size(x);
y1 = zeros(a,b) ;
x1 = zeros(a,b);
%确定首幅图的样式,并指定标题,坐标轴标题等样式
plot3(x(1,1),t(1,1),y(1,1),'black');
hold on
plot3(x(1,1),t(1,1),y1(1,1),'blue');
plot3(x1(1,1),t(1,1),y(1,1),'r');
axis([-1,1,0,tmax,-1,1])
str = ['$${e^{it}} = \cos t + i\sin t $$',char(13,10)','created
by Lijunjie!'];
title({str},'Interpreter','latex')
xlabel('实轴');
ylabel('时间轴');
zlabel('虚轴');
grid on;
set(gcf,'Position',[0,0,600,600], 'color','w');
set(gca,'ydir','reverse') %反转坐标轴
%确保图像在采集的过程中包括坐标轴及标题
ax = gca;
ax.Units = 'pixels';
pos = ax.Position;
ti = ax.TightInset;
rect = [-ti(1), -ti(2), pos(3)+ti(1)+ti(3), pos(4)+ti(2)+ti(4)];
%在指定的范围内获得图像文件
frame = getframe(ax,rect);
im=frame2im(frame);
%创建gif文件,指定其样式,写入首帧图像
k = 1;
%用胞元存储采集到的图像,方便后面反转图像用
[I{k},map{k}]=rgb2ind(im,256);
imwrite(I{k},map{k,1},'mygif.gif','gif','Loopcount',Inf,'DelayTime',0.2);
k = k + 1;
%画图并采集到gif中
steptmp = 20; %每幅图要画的点数
i = steptmp;
while i
x_1 = x(1,(i-steptmp+1):i+1);
t_1 = t(1,(i-steptmp+1):i+1);
y_1 = y(1,(i-steptmp+1):i+1);
y1_1 = y1(1,(i-steptmp+1):i+1);
x1_1 = x1(1,(i-steptmp+1):i+1);
plot3(x_1,t_1,y_1,'black');
hold on
plot3(x_1,t_1,y1_1,'blue');
plot3(x1_1,t_1,y_1,'r');
%下面是制作gif的主要代码,除了调节间隔时间外,一般不需要改动
ax = gca;
ax.Units = 'pixels';
pos = ax.Position;
ti = ax.TightInset;
rect = [-ti(1), -ti(2), pos(3)+ti(1)+ti(3), pos(4)+ti(2)+ti(4)];
frame = getframe(ax,rect);
im=frame2im(frame);
[I{k},map{k}]=rgb2ind(im,256);
%写入模式为“追加”模式
imwrite(I{k},map{k},'mygif.gif','gif','WriteMode','append','DelayTime',0.1);
k = k + 1;
i = i + steptmp;
end
%将图像按相反的顺序再写入到gif中
for i = (k-1):-1:1
imwrite(I{i},map{i},'mygif.gif','gif','WriteMode','append','DelayTime',0.1);
end
运行完毕后,在Matlab当前的路径下,即可找到一个gif文件:
-
Matlab绘制动态曲线
2013-04-19 11:33:19j=1; for i=1:max %max为最大时间 hold on; if(i==t(j)) %t为时间向量 plot(x(j),y(j),'--ro'); j = j+1; end pause(0.1);%暂停0.1s endj=1;
for i=1:max %max为最大时间
hold on;
if(i==t(j)) %t为时间向量
plot(x(j),y(j),'--ro');
j = j+1;
end
pause(0.1);%暂停0.1s
end
-
MFC动态曲线绘制,效果类似matlab
2009-09-08 08:27:26使用MFC进行动态曲线绘制,效果与MatLab相似 -
MATLAB GUI实现动态画图曲线的源程序代码
2015-05-29 01:18:41MATLAB GUI实现动态画图曲线的源程序代码 -
MATLAB GUI实现动态画图曲线的源程序代码.rar
2018-12-18 12:36:27MATLAB GUI实现动态画图曲线的源程序代码.rar -
Matlab中一个图像框中多条动态曲线的更新
2021-03-12 22:05:15Matlab中一个图像框中多条动态曲线的更新前言1、了解函数2、上代码3、运行结果: 前言 Matlab中通过refeshdata()这个函数,可以更新各种数据,这个结合plot()函数可以实现动态的效果 1、了解函数 doc refresh...Matlab中一个图像框中多条动态曲线的更新
前言
Matlab中通过refeshdata()这个函数,可以更新各种数据,这个结合plot()函数可以实现动态的效果
1、了解函数
doc refreshdata %查看更新函数的详细信息 doc plot %查看plot相关属性 doc YDataSourse %需要用set设置plot的数据源 doc legend %图例显示,因为是多图像显示,如果需打印,可以设置曲线为不同的形状,--或**
2、上代码
close clc; data1 = [1 2 3 4 5 6]; data2 = [1 4 9 16 25 36]; % 建立图表 index1 = plot(data1,'blue'); % 第1条曲线的句柄,曲线为蓝色 set(index1,'YDataSource','data1'); % 设置y轴数据来源 data1 grid on % 显示网格 hold on % 为了让两条图线在一个图中显示 index2 = plot(data2,'red'); % 第2条曲线的句柄,曲线为红色 set(index2,'YDataSource','data2'); % 设置y轴数据来源 data2 %grid on % 显示网格 legend('iq ref','iq sample'); % 显示图例 a = input('stop and show :'); % 暂停,随便在命令窗口输入个什么,开始更新数据 fprintf('数据更新开始\n'); % refreshdata by 300ms/time rate for i = 1:6 data1(i) = data1(i)+i; data2(i) = data2(i)+i; pause(0.3); % 按照0.3秒间隔更新一次 %更新数据 refreshdata(index1); refreshdata(index2); end fprintf('数据更新完毕\n');
3、运行结果:
运行到input()这一句时,数据显示为:
输入1(随便输入什么都行),运行前后结果为:
输入前:
输入后:
根据结果,说明数据更新了。
4、一幅图中多个子窗口的实现
clc; close;%关闭窗口 global data1 data2 data3 %定义数据,数据放在了updata_data 函数中 global index1 index2 index3 index4 % 建立图表窗口 subplot(3,1,1); index1 = plot(data1,'blue','marker','*'); % 第一条曲线的句柄,曲线为蓝色 set(index1,'YDataSource','data1'); % 设置y轴数据来源 data1 set(gca,'xlim',[1 7],'ylim',[0 50]); grid on % 显示网格 hold on % 为了让两条图线在一个图中显示 index2 = plot(data2,'red'); % 第2条曲线的句柄,曲线为红色 set(index2,'YDataSource','data2'); % 设置y轴数据来源 data2 legend('data1 ',' data2'); % 显示图例 hold off % 为了让两条图线在一个图中显示 subplot(3,1,2) index3 = plot(data2,'green'); set(index3,'YDataSource','data2'); % 设置y轴数据来源 data2 set(gca,'xlim',[1 7],'ylim',[0 50]); grid on subplot(3,1,3) index4 = plot(data3,'black'); set(index4,'YDataSource','data3'); % 设置y轴数据来源 data2 set(gca,'xlim',[1 7],'ylim',[1 10]); grid on %更新 update_data; %更新数据 这个也可以单独写进一个m文件中 function update_data() global data1 data2 data3 global index1 index2 index3 index4 data1 = [1 2 3 4 5 6]; data2 = [1 4 9 16 25 36]; data3 = [2 2 2 2 2 2]; for j = 1:3 %刷新3次,看是否可以正常刷新 a = input('stop and show input 1 to continue:'); % 暂停,随便在命令窗口输入个什么,开始更新数据 switch a case 0 fprintf('exit') break; case 1 fprintf('数据更新开始\n'); % refreshdata by 300ms/time rate for i = 1:6 data1(i) = data1(i)+1; data2(i) = data2(i)+1; data3(i) = data3(i)+1; pause(0.3); % 按照0.3秒间隔更新一次 %更新数据 refreshdata(index1); refreshdata(index2); refreshdata(index3); refreshdata(index4); end fprintf('数据更新完毕\n'); otherwise fprintf('input number 0 (exit)or 1(run again)'); end end end
运行代码:
在matlab命令行输入 1,图形中数据开始更新,如下
下面是全部更新完后的效果:
经过多次修改、测试,功能准确可靠,把demo代码保存下来,以后需要时回顾。 -
matlab开发-医学气候分类中基于预测的动态曲线模型的机器人停止功能
2019-08-26 10:56:52matlab开发-医学气候分类中基于预测的动态曲线模型的机器人停止功能。我们将分类器的梯度信息和概率分数结合起来构造ESF。 -
使用set函数提高MATLAB曲线和图像动态结果的更新速率
2020-03-26 00:18:58在使用MATLAB中通常需要动态显示图片或者曲线,而当图片数据量较大或者曲线点很多时,若不采用合适的方式调用MATLAB图形系统,将会导致MATLAB图形渲染速度变得比较慢,不能以、平滑或较高的帧率绘出我们想要的结果。... -
用matlab实时读取串口数据并动态显示曲线
2016-08-29 17:08:00最近为了方便监控IMU的地磁传感器(HMC5983)数据,用matlab的GUI做了一个简易的串口助手,可实时显示地磁传感器X Y Z三轴的数据,并动态的显示曲线图。1. 串口助手的GUI图如下:2. 连接串口后的数据图如下(绘图时... -
qlineseries绘制动态曲线_动画展示PID参数作用——在MATLAB中用代码动态分析
2021-01-08 02:38:47先看PI参数作用效果图:0 系统传递函数我们以一个二阶系统为例,传递函数为在MATLAB中用传递函数创建二阶系统 G = tf(2,[6 5 1])运行得到 G = 2 --------------- 6 s^2 + 5 s + 1 1 比例控制比例控制(P)就是... -
VC6.0调用matlab画动态三维曲线-1.0.zip
2013-08-03 11:18:25这是一个使用VC6.0调用matlab画动态三维曲线旋转显示的程序,其中设计的包括:VC6.0,matcom4.5,matlab,三维旋转实现采用的是改变view视角的方法。 希望能够对有相关需求的朋友有一点点帮助! -
520快到了,教你用matlab制作动态心形曲线表白(保存为AVI视频版本)
2020-05-15 20:25:34% matlab动态心形曲线(AVI视频版本) clc;clear all; a=0; x=-2:0.01:2; writerObj = VideoWriter('心形图.avi'); writerObj.FrameRate = 20; open(writerObj); figure(1); set(gcf,'position',[0,0,800,600],'... -
matlab中动态绘制3D心形曲线
2011-12-15 18:46:55此代码可用于绘制3D的心形,可以演示给自己的女朋友看哦~ -
MATLAB学习笔记(3):追击问题的动态曲线的画法
2020-08-02 17:23:06利用VideoWriter进行动态曲线视频制作 1. 一些自己的想法 在上次的培训中心,我已经利用数值计算的方法,将追击问题的近似解求解了出来,其具体代码如下: clear all; dt = 0.0001; i = 1; x_w(i) = 0; y_w(i) = ... -
mnist模型由Matlab绘制Accuracy和Loss曲线,并生成gif动态图
2017-10-18 14:54:03mnist模型由Matlab绘制Accuracy和Loss曲线,并生成gif动态图 -
matlab在二值图像上画曲线_用Python来画一条动态心形曲线
2020-11-27 01:07:03五分钟画一条动态心形曲线~mp.weixin.qq.com先上效果使用Python绘制一条动态的心形曲https://www.zhihu.com/video/12280010884537671681.绘制一条心形曲线最近看到个视频,打算绘制个心型动态的曲线。1.1 Matla... -
520表白季,教你用matlab画动态心形曲线图,可自动保存GIF格式图片,送给女朋友,她们一定会惊讶,赶紧收藏...
2020-05-12 15:35:53昨天发表了一篇用python教你画心形图表白的文章: ...虏获芳心matlab画动态心形曲线图matlab画动态心形曲线图(基础版)matlab画3D心形图备注 matlab画动态心形曲线图 利用数学上的格式f(x)=x^2^/^3+e/3*(π-x^2 -
matlab拟合曲线并输出公式_PEMFC 输出特性建模与多因素仿真分析
2020-11-11 23:33:34摘要:质子交换膜燃料电池(PEMFC)是一个涉及多个学科领域的复杂系统,其输出特性...建立了考虑双电层电容作用的电压动态模型,并在Matlab/Simulink平台上进行仿真。利用实验室自制风冷自增湿DXFC-200质子交换膜燃料电池... -
linspace函数matlab_Matlab动态仿真(4)~常用效果及代码示例
2020-11-28 11:02:34质点动画:最简单的动画产生方式,产生一个顺着曲线轨迹运动的质点来操作。电影动画:首先保存一系列的图形,然后按照一定的顺序像电影一样的播放。程序动画:在图形窗口中按照一定的算法连续擦除和重绘图形对象。... -
MATLAB绘制函数动态图_人物动态图
2020-04-15 09:45:37一小组课题绘制动态函数曲线;三设计原理 matlab是矩阵实验室的简称用于算法开发数据可视化数据分析以及数值计算的高级技术计算语言和交互式环境通过matlab里几个命令函数的调用很轻易的在实际语言与数字信号的理论...