云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Matlab 入门教程

Matlab 入门教程

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 2:46:28

fid=fopen('data1.txt','w'); fprintf(fid,'%8.4f',a); fclose(fid); load data1.txt data1

iii)save 的指令格式

save filename 变量1 变量2 ?

使用load filename 即可把变量1、变量2、?调出来。 如果要保存为ASCII 码,就要在后面加上-ascii

-306-

save filename 变量1 变量2 ? -ascii

对于save 指令,处理大量数据存取有一个技巧非常有用,即:

save(‘filename’,’变量1’,’变量2’,?)

由于filename 是用字符串表示的,所以可以使用程序进行控制,使其每处理 完一次就存一个不同的文件名称。 例

clear,clc m=1:10;

for i=1:length(m) n=m.^2;

nf=[m',n'];

t=char(['nf',int2str(i),'=nf']) eval(t)

save(['data',int2str(i)],['nf',int2str(i)]) end

iv)load 纯文本文件 load filename.txt

就建立了变量名为filename 的数据。

例 现有一纯文本数据文件caipao.txt,保存了山东省65 期的福利彩票中奖 号码,试对中奖号码给出一些统计,并按一定的规则产生两组彩票号码。 clc,clear

load caipiao.txt; cp=caipiao; for i=1:30

b(i)=length(find(cp==i)); end

[b,id]=sort(b);

mai1=sort(id(1:7)), mai2=sort(id(24:30)) fid1=fopen('cpsj.txt','w');

fprintf(fid1,'m m m m m m m m\\n',caipiao'); fclose(fid1);

§5 动画制作

动画制作通常有两种方法:一种是预先将图形制作好,并放到图形缓冲区内,然后

一帧一帧地播放。另一种方法是保持整个背景图案不变,只更新运动部分的图案,以便

加快每幅图的实时生成速度。

1.简单动画制作

在 getframe 命令下,可以完成动态数据到动态画面的制作。其使用格式及制作步 骤一般为: for j=1:n plot_command M(j) = getframe;

end

movie(M,n)

其中M(j)=getframe 将当前图形窗口中的画面作为第j 帧存入矩阵M,movie(M,n)将按

-307-

顺序放映矩阵M 中存储的画面,并重复n 次。 例

x=-3:0.1:3;

[x,y]=meshgrid(x);

z=sin(x.*y).*exp(x.*y/5); for j=1:30

mesh(cos(4*pi*j/30)*z,z) m(j)=getframe end

movie(m,10)

例 模拟 6 个移动物体

x0=[150 85 150 145 130 0]; y0=[140 85 155 50 150 0];

q=[243 236 220.5 159 230 52]*pi/180; t=0:0.05:2*pi; for i=0:280 pause(0.01); for j=1:5

axis([0 160 0 160]);

fill(x0(j)+0.8*i*cos(q(j))+4*cos(t),y0(j)+0.8*i*sin(q(j))+4*sin(t),'b') hold on;

end

fill(x0(6)+0.8*i*cos(q(6))+4*cos(t),y0(6)+0.8*i*sin(q(6))+4*sin(t),'r') hold off; end

2.其它例子

在 Matlab 里利用图形的“EraseMode”属性可以实现显示新对象,擦除旧对象,而 又不破坏背景图案。图形的“EraseMode”属性有以下四种: normal 方式

重绘整个显示区,这种方式产生的图形最准确,但较慢。 none 方式

不做任何擦除,直接在原来图形上绘制。 xor 方式

对象的绘制和擦除由背景颜色和屏幕颜色的异或而定。只擦除和屏幕颜色不一致 的旧对象的点,只绘制和屏幕颜色不一致的新对象的点。 background 方式

把旧对象的颜色变为背景色,这种方式影响被擦除对象下面的对象。

当新对象的属性修改后,应刷新屏幕,使新的对象显示出来。Matlab 里屏幕刷新 的命令是drawnow。drawnow 命令使Matlab 暂停目前的任务而去刷新屏幕。若不使用 drawnow 命令,Matlab 则等到任务序列执行完后才刷新。

例 布朗运动

(1)先确定布朗运动的点数n 和一个温度s(或速度)。比如n=20,s=0.002。达 到最好的动画效果的n、s 与使用的计算机的性能有关。在以原点为中心、边长为1 的 正方形内产生n 个位置随机分布的点。

-308-

(2)在单位正方形里绘制所有的点。设置图形的“EraseMode”属性为异或(xor), 即当图形的某个点的位置变化时,不用全部重绘图形,而只绘制不相同的部分,这将大 大提高绘图速度。

(3)用while 循环实现动画效果,在每一次循环中给点的坐标加上一些正态分布 的噪声,这样整个图形中只有点的坐标发生变化,而不用全部重绘整个图形。 程序如下: clc,clear n=20;s=0.002; axis square

grid off

x=rand(n,1)-0.5;y=rand(n,1)-0.5; h=plot(x,y,'.');

set(h,'EraseMode','xor','MarkerSize',18) while 1

x=x+s*rand(n,1);y=y+s*rand(n,1) set(h,'Xdata',x,'Ydata',y) if all(x>1) & all(y>1) break end

drawnow

end

例 制作一幅钻石沿着圆周运动的动画。 程序如下: t=0:pi/200:pi*2; x=sin(t);y=cos(t); axis square plot(x,y,'b') n=length(t);

h=line('color','red','marker','diamond','erasemode','xor'); i=1;j=1; while 1

set(h,'xdata',x(i),'ydata',y(i))

drawnow i=i+1;j=j+1; if i>n i=1; end if j>2*n break end end 习题一

1.存储工作间变量x,y,z 到文件data1.mat,再在程序中调用变量x,y,z。 2.产生20 个随机数,再把这20 个随机数存放在纯文本文件中。__

搜索更多关于: Matlab 入门教程 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

fid=fopen('data1.txt','w'); fprintf(fid,'%8.4f',a); fclose(fid); load data1.txt data1 iii)save 的指令格式 save filename 变量1 变量2 ? 使用load filename 即可把变量1、变量2、?调出来。 如果要保存为ASCII 码,就要在后面加上-ascii -306- save filename 变量1 变量2 ? -ascii 对于save 指令,处理大量数据存取有一个技巧非常有用,即: save(‘filename’,’变量1’,’变量2’,?) 由于filename 是用字符串表示的,所以可以使用程序进行控制,使其每处理 完一次就存一个不同的文件名称。 例

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com