版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 序号: 学号: 13461220 课 程 报 告课程报告名称: Matlab应用软件 学 生 姓 名: 王健 专 业 班 级: 电科 132 学 院(系): 信息科学与工程学院 数理学院 校内指导教师: 姜忠义 专业技术职务: 讲师 2015 年8月 1日 2015 年 12月 28日 目 录目 录21第一部分32第二部分43第三部分64第四部分75第五部分76第六部分87第七部分98第八部分109第九部分1110心得体会151 第一部分用matlab画彗星运动t = (1/2:2/5:9/2)*pi;%t函数x = cos(t); x = x(1:2:end-1) x(1);%t的横坐标函
2、数y = sin(t); y = y(1:2:end-1) y(1);%t的纵坐标函数plot(x,y,'r');%用红色线显示图像axis equal;%坐标轴的长度单位设成相等axis off%清除坐标刻度N=10;T=N*pi*(0:0.0005:1);%T函数X=sin(T);Y=cos(T);%编译X、Y关于T的函数plot(X,Y,'g');%用蓝色线在原图象上显示动态图像hold on;%使当前轴及图形保持而不被刷新,再次基础上再画图comet(X,Y,0.02);%质点运动轨迹动画的绘制hold off%使当前轴及图形不在具备被刷新的性质,关闭在
3、此基础上的再画图运行结果:2 第二部分图形处理a=-3:0.2:3;%定义横坐标b=1/sqrt(2*pi)*exp(-1/2*a.2);%定义纵坐标subplot(2,2,1),plot(a,b,'r-*')%用点画线符号*显示在二行二列的第一行第一列的坐标图上subplot(2,2,2),plot(a,b,'r*')%用细实线符号*显示在二行二列的第一行第二列的坐标图上X=-1:0.1:1;Y=X'X1=X.2;Y1=Y.2;x=ones(3,1);x=ones(length(X),1);%生成X长度行1列且所有元素均为1的矩阵y=ones(1,le
4、ngth(Y);%生成1行Y长度列且所有元素均为1的矩阵X1=x*X1;Y1=Y1*y;Z=X1+Y1;subplot(2,2,3),mesh(X,Y,Z);%显示网格线在二行二列的第二行第一列的坐标图上subplot(2,2,4),surf(X,Y,Z);%显示网格线在二行二列的第二行第二列的坐标图上运行结果:3 第三部分Matlab 函数指令syms x a%定义符号函数f1='sin(x2)'f2='3*a2+5*a+3'a1=2;a2='100'diff(f1,x)%对f1函数关于x一次求导isstr(a1)%判断a1是不是字符串类型的s
5、ubs(f1,'x','b')%将f1函数中的x用b赋值int(f2,a)%将f2关于a的积分double(a1)%将a1转为双精度浮点类型运行结果:4 第四部分判定一个数是不是素数function a=b13461220(b)%定义一个功能函数判定一个数是不是素数for i=2:(b-1) a=mod(b,i); if a=0 a='不是素数' break; else %continue; a='是素数' endendend运行结果:5 第五部分将行列式化成最简行列function x=b13461220(x)%定义一个功能函数
6、将行列式化成最简行列式a b=size(x);for k=1:b-1 for i=a:-1:k+1 for j=b:-1:k x(i,j)=x(i,j)-x(k,j)*(x(i,k)/x(k,k); end endendend运行结果:6 第六部分二分法计算函数function c=b13461222(f,a,b) %二分法计算函数while (b-a)>1e-7 c=(a+b)/2; if (f(c)*f(b)>0 b=c; else if (f(c)*f(b)<0 a=c; else c; break; end endend运行结果:7 第七部分非不拉列函数functio
7、n y=b13461220(n)%定义一个非不拉列函数if n=1|n=2 y=1;else y= b13461220(n-1)+b13461220(n-2);end运行结果:8 第八部分文件的输写a=0:1:10;f=a;3*a+2;fid=fopen('b.txt','w');%将指定文件写入b.txtfprintf(fid,'%d %dn',f);%将f值输出到指定文件c,count=fscanf(fid,'%d %d ',5 inf);%c,count读取5 inf的数值fprintf(1,'%d %dn'
8、,c);%将c值输出fseek(fid,0,'eof');%定文件第零个元素位置d=ftell(fid);%得到文件数据fprintf(1,'File Size=%dn',d);%将d值输出frewind(fid);%位置指针移到文件首部d=ftell(fid);%得到文件数据fprintf(1,'File Position=%dn',d);%将d值输出fclose(fid);%关闭文件运行结果:9 第九部分课程训练(数据类型函数库)clear student%清除student变数='马云'%加入name
9、字段student.id='阿里巴巴'%加入id字段student.scores=500,900;%加入scores字段student%显示结果(student代表一个结构数组的第一个元素)运行结果:clear student%清除student变数='马云'%加入name字段student.id='阿里巴巴'%加入id字段student.scores=500,900;%加入scores字段student(2).name='马化腾'%加入name字段student(2).id='腾讯'%加入
10、id字段student(2).scores=300,800;%加入scores字段student%显示结果(student代表一个结构数组的第一个元素)%此结构太过复杂,matlab并不将所有字段印出运行结果:clear student%清除student变数student=struct('name','叶良成','叶鹏飞','scores',10 5,90 99);student(1)%显示student(1)student(2)%显示student(2)运行结果:clear student%清除student变数student
11、(1)=struct('name','叶良成','scores',10 5);%输入student1数据student(2)=struct('name','叶鹏飞','scores',90 99);%输入student2数据values=struct2cell(student)%传回的异质数组维度扩大了运行结果:clear student%清除student变数='马云'%加入name字段student.id='阿里巴巴'%加入id字段stud
12、ent.scores=500,900;%加入scores字段student(2).name='马化腾'%加入name字段student(2).id='腾讯'%加入id字段student(2).scores=300,800;%加入scores字段student(2).name='王石'student(1)%显示student(1)student(2)%显示student(2)运行结果:clear student%清除student变数student(1)=struct('name','叶良成','scores
13、',10 5);%输入student1数据student(2)=struct('name','叶鹏飞','scores',90 99);%输入student2数据student(2).age=21;%加入新数据student(1)%显示student(1)student(2)%显示student(2)运行结果:clear student%清除student变数student=struct('name','叶良成','scores',10 5);student=rmfield(student,
14、'scores');%删除scores字段student%显示student运行结果:clear student%清除student变数student(1)=struct('name','叶良成','scores',10 5);%输入student1数据student(2)=struct('name','叶鹏飞','scores',90 99);%输入student2数据A=cat(2,student.scores)%A=cat(dim,structureField);dim=1代表
15、上下并排以改变横列的维度;dim=2代表左右并排以改变直行的维度average=mean(cat(2,student.scores)%计算平均值运行结果:clear student%清除student变数student(1)=struct('name','叶良成','scores',10);%输入student1数据student(2)=struct('name','叶鹏飞','scores',90);%输入student2数据student(3)=struct('name','龙傲天','scores',11);%输入student3数据for i=1:length(student)%打印每个学生的名字 fprintf('student %g:%s scores %gn',i,student(i).name,student(i).scores);end运行结果:10 心得体会一学期的MATLAB学习已经结束,虽然时间很短,但我还是从中学到了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论