Matlab程序设计报告

合集下载

matlab实验报告

matlab实验报告

Matlab实验报告一、实验名称:matlab实验报告二、实验目的:熟悉并学会掌握matlab的基本操作。

三、实验内容:准确编写第二,三,四章课后习题的matlab程序。

四、实验数据处理第二章MATLAB 基本操作第一题:利用基本矩阵产生3X3和15X8的单位阵、全1阵、全0阵,随机分布矩阵([-1,1]之间)、正态分布随机阵(均值为1,方差为4)。

程序:>> A=eye(3)A = 1 0 00 1 00 0 1>> A=ones(3)A =1 1 11 1 11 1 1>> A=zeros(3)A =0 0 00 0 00 0 0>> A=1-2*rand(3)A =-0.9003 0.0280 0.08710.5377 -0.7826 0.9630-0.2137 -0.5242 -0.6428>> A=2*randn(3)+1A =0.1349 1.5754 3.3783-2.3312 -1.2929 0.92471.2507 3.3818 1.6546>> B=eye(2,3)B =1 0 00 1 0>> B=ones(2,3)B = 1 1 11 1 1>> B=zeros(2,3)B =0 0 00 0 0>> B=1-2*rand(2,3)B = 0.1106 -0.5839 -0.4764-0.2309 -0.8436 0.6475>> B=2*randn(2,3)+1B =1.3493 2.4516 5.36640.6266 -0.1766 0.7272第五题:利用rand函数产生(0,1)间均匀分布的5X5随机矩阵A,然后统计A中大于等于0.6的元素个数。

程序:A=rand(5)A =0.4057 0.0579 0.2028 0.0153 0.41860.9355 0.3529 0.1987 0.7468 0.84620.9169 0.8132 0.6038 0.4451 0.52520.4103 0.0099 0.2722 0.9318 0.20260.8936 0.1389 0.1988 0.4660 0.6721>> n=sum(sum(A>=0.6))n =9第六题:利用rand函数产生均值为0,方差为1的4X4正态分布随机矩阵A,然后统计A 中大于-0.5且小于0.5的元素个数。

matlab程序设计实验报告

matlab程序设计实验报告

实验报告课程名称:可视化计算机语言实验项目名称:matlab程序设计学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务部制一、实验目的与要求:1、熟练掌握matlab的程序流程控制结构..2、熟悉掌握M文件的结构和函数调用..3、掌握内联函数和函数句柄的使用..4、了解程序性能剖析窗口..二、内容和步骤:MATLAB的语法规则简洁;编程效率高;作为一个完整的程序语言;MATLAB也有各种程序流程控制;文件格式和函数调用的规则;通过对函数的调用就能够组成庞大的程序;完成复杂的功能..1.使用程序流程控制Fibonacci数列的各元素为:1、1、2、3、5、8、...满足一下关系F1=1 F2=1 F n=F n-1+F n-2用M函数文件实现;数列的元素个数为输入变量..(1)按M函数文件格式创建文件开头..function f=shiyan0501n%SHIYAN0501%Fibonacci数列%n 元素个数%f 构成Fibonacci数列向量%%copyright 2015-11-25(2)用while循环实现程序功能f1=1;f2=1;i=2;while i<=nfi+1=fi-1+fi;i=i+1;End运行后;输入参数10;运行结果如下所示:(3)使用for循环实验for i=2:nfi+1=fi-1+fi;end运行结果如下所示:(4)当某个元素大于50时;退出循环结构;程序修改如下:for i=2:nif fi>10breakelsefi+1=fi-1+fi;endend当某个元素大于50;程序便退出循环结构当n=10;最后一个元素刚好是大于50的;正好退出循环结构当n=12时;第十个元素对应的fi大于50;于是退出循环结构;不再运行f11;f12了..(5)将该.m文件生成P码文件>> pcode shiyan0501将shiyan0501.m删除;重新运行该文件夹;结果如下所示:练习:将该M文件函数改为M脚本文件;将数列元素个数通过键盘输入;程序应该如何修改①将M文件函数另存为M脚本文件;②在函数前加n=input'please input a num:'便可通过键盘键入文件f=mf;endk=f1/2^2n1f^22n1+1;end调用程序shiyan0502;运行结果如下所示:>> y=shiyan05020.7y =0.7754运行结果与使用子函数factorial的运行结果一致..(4)使用程序性能剖析..选择菜单‘view’->‘profile’命令;或使用在命令窗口输入‘profile viewer’命令都可以打开程序性能剖析窗口..在程序性能剖析窗口的‘命令输入栏’中输入需要剖析的命令;‘y=shiyan05020.7’;然后单击‘start profiling’按钮;查看剖析报告..(5)程序的调试..当有多个函数调用时;由于函数变量的工作空间是独立的;被调用的函数执行结束后变量消失;因此调试时要使用matlab调试器查看运行过程中的变量值..①设置断点..在需要查看的程序的地方设置断点;>> shiyan05020.7K>> yy =0.7000K>> x=0.5x =0.5000在K>>输入x=0.5即可将x的值从0.7修改为0.5.去除断点;查看结果:ans =0.7236结果与x值为0.7时不一致;当x=0.7时;y =0.7754;由此可知;x的值已被修改..②单步运行>> shiyan05020.79 n=n+1;K>>按单步运行键:可看到箭头不断的移动:6使用函数句柄..在命令窗口使用函数句柄调用函数..>> h_shiyan0502=shiyan0502h_shiyan0502 =shiyan0502>> y=fevalh_shiyan0502;0.5y =0.5236(7)使用全局变量..Matlabe的编程不提倡使用全局变量;本例中的程序主要是为了查看全局变量的概念..将n 作为全局变量;子函数factorial不修改;子函数cal程序和主函数shiyan0502修改如下:function y=shiyan0502x%shiyan0502 arcsinxglobal n;n=1;if absx<1y=x;while caln>0.0001y=y+calnx^2n+1;n=n+1;endelsedisp'输入错误';y=0;returnendfunction k=caln1global nfor m=1:nk=factorial2n/2^2nfactorialn^222n+1;Endglobal为设置的全局变量;子函数没有输入变量;而用全局变量n传递..在全局变量前设置断点;然后运行程序;当程序运行到断点处停止;接着不断使用单步运行调试;结果如下所示:|||练习:使用单步运行调试;查看全局变量n的变化;并在工作空间查看n;3、利用泛函命令实现数值分析①创建函数shiyan0503实现上述表达式关系..function y=shiyan0503t%shiyan0503 y=sint.^2.expat-babsta=0.1;b=0.5;y=sint.^2.expat-babst;②查看该函数的输出波形;如下图所示:注:1、报告内的项目或内容设置;可根据实际情况加以调整和补充..2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内..。

程序设计实验报告(matlab)

程序设计实验报告(matlab)

程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。

实验内容:运用Matlab进行简单的程序设计。

实验方法:基于Matlab环境下的简单程序设计。

实验结果:成功掌握简单的程序设计和Matlab基本编程语法。

实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。

实验内容:在Matlab环境下进行多项式拟合和插值的计算。

实验方法:结合Matlab的插值工具箱,进行相关的计算。

实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。

实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。

实验内容:利用Matlab进行最小二乘法计算。

实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。

实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。

实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。

实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。

实验方法:基于Matlab的ODE工具箱,进行ODE求解。

实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。

总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。

通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。

这些知识和技能对我未来的学习和工作都将有着重要的帮助。

实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告I am going to write the report for the Matlab program design experiment 3. In this experiment, I was required to use Matlab to design a program to solve a specific problem.I had to write the program, test it, and then write areport on the results.First, I started by analyzing the problem and breaking it down into smaller, more manageable parts. This is a crucial step in programming, as it allows me to understand the problem fully and come up with an effective solution. Once I had a clear understanding of the problem, I began writing the program in Matlab.I encountered some challenges along the way, such as debugging errors and optimizing the code for efficiency. However, with some perseverance and problem-solving skills, I was able to overcome these challenges and successfully write the program.After writing the program, I tested it with different inputs to ensure that it produced the correct outputs inall cases. Testing is an essential part of programming, asit helps to identify and fix any errors or bugs in the code.Once the program was tested and working correctly, I wrote a report on the results. In the report, I explainedthe problem, my approach to solving it, and the results of the program. I also included any insights or observations that I gained from working on the program.Overall, this experiment was a valuable learning experience for me. It allowed me to practice my programming skills and problem-solving abilities, and it also gave me a better understanding of how to use Matlab for real-world applications.中文回答:我要写实验3的Matlab程序设计实验报告。

实验二MATLAB程序设计含实验报告

实验二MATLAB程序设计含实验报告

实验二MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。

2.掌握利用switch 语句实现多分支选择结构的方法。

3.掌握利用for 语句实现循环结构的方法。

4.掌握利用while 语句实现循环结构的方法。

5.掌握MATLAB 函数的编写及调试方法。

二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。

M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。

点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。

并输入几组典型值加以检验。

(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。

其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。

要求:(1)用switch 语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。

请为关键的Matlab 语句填写上相关注释,说明其含义或功能。

matlab程序设计实验报告

matlab程序设计实验报告

matlab程序设计实验报告《MATLAB程序设计实验报告》摘要:本实验报告旨在介绍MATLAB程序设计的基本原理和实践操作,通过实验演示和分析,展示了MATLAB在工程领域的应用和重要性。

本报告详细介绍了MATLAB程序设计的基本语法和常用函数,以及如何利用MATLAB进行数据处理、图像处理、信号处理等工程应用。

通过本报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。

1. 引言MATLAB是一种用于算法开发、数据可视化、数据分析和数值计算的高级技术计算语言和交互式环境。

它具有强大的数学计算功能和丰富的绘图工具,广泛应用于工程、科学和金融等领域。

本实验报告将介绍MATLAB程序设计的基本原理和实践操作,帮助读者快速掌握MATLAB的基本技能。

2. 实验目的本实验的主要目的是让读者了解MATLAB程序设计的基本语法和常用函数,掌握MATLAB在工程领域的应用和重要性。

通过实验演示和分析,展示MATLAB 在数据处理、图像处理、信号处理等方面的应用。

3. 实验内容(1)MATLAB程序设计的基本语法和常用函数(2)利用MATLAB进行数据处理的实验演示(3)利用MATLAB进行图像处理的实验演示(4)利用MATLAB进行信号处理的实验演示4. 实验步骤(1)学习MATLAB程序设计的基本语法和常用函数(2)编写MATLAB程序,实现数据处理、图像处理、信号处理等功能(3)进行实验演示和分析,展示MATLAB在工程领域的应用和重要性5. 实验结果与分析通过本实验的学习,读者将能够掌握MATLAB程序设计的基本技能,包括数据处理、图像处理、信号处理等方面的应用。

通过实验演示和分析,读者将了解MATLAB在工程领域的重要性,为工程实践提供有力的支持。

6. 结论MATLAB程序设计是一种强大的工程工具,具有广泛的应用前景。

通过本实验报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。

Matlab程序设计实验报告

Matlab程序设计实验报告

实验七Matlab程序设计实验目得:1、掌握建立与执行M文件得方法;2、掌握实现选择结构得方法;3、掌握实现循环结构得方法.实验内容:1.编写用5次多项式拟合函数y=sin(x),x∈[0,2π]得脚本M文件,要求绘图观察拟合得效果。

function shiyan1x=0:0、5:2*piy=sin(x)p=polyfit(x,y,5)x1=0:0、2:2*piy1=polyval(p,x1)plot(x,y,’b’,x1,y1,’*r’x =Columns 1 through 900、5000 1、0000 1、50002、00002、5000 3、00003、50004、0000Columns10through134、5000 5、0000 5、5000 6、0000y=Columns 1 through 90 0、4794 0、8415 0、9975 0、9093 0、59850、1411-0、3508-0、7568Columns10through13-0、9775—0、9589-0、7055—0、2794p =-0、0056 0、0881-0、39670、2671 0、8902 0、0029x1=Columns 1through 100 0、2000 0、4000 0、6000 0、8000 1、0000 1、20001、4000 1、60001、8000Columns 11through 202、0000 2、20002、40002、60002、80003、0000 3、2000 3、4000 3、6000 3、8000Columns 21 through 304、0000 4、2000 4、4000 4、60004、80005、00005、2000 5、4000 5、60005、8000Columns31through 326、0000 6、2000y1=Columns 1through 100、00290、1886 0、37860、5585 0、7172 0、84610、93910、9926 1、0048 0、9761Columns11 through200、9083 0、8048 0、6701 0、5098 0、33010、1381 -0、0590-0、2538-0、4389 —0、6073Columns 21 through30—0、7524-0、8685-0、9505-0、9949 -0、9991 -0、9626—0、8863—0、7732 -0、6288—0、4606Columns 31through32—0、2792 -0、09782、从键盘输入一个4位整数,按如下规则加密后输出。

实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告英文回答:Experiment 3: Matlab Programming 1。

In this experiment, I was tasked with writing a Matlab program to simulate the motion of a projectile. The program was to take into account the initial velocity and angle of the projectile, as well as the acceleration due to gravity.I began by defining the initial conditions for the projectile. I set the initial velocity to 10 m/s and the initial angle to 45 degrees. I also set the acceleration due to gravity to 9.8 m/s^2.Next, I used the equations of motion to calculate the position and velocity of the projectile at different time intervals. The equations of motion are:```。

x = v0tcos(theta)。

y = v0tsin(theta) 0.5gt^2。

```。

where:x is the horizontal position of the projectile。

y is the vertical position of the projectile。

v0 is the initial velocity of the projectile。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南大学
题目Matlab程序设计
学生姓名
指导教师
学院地球科学与信息物理学院
专业班级测绘1004
学生学号
2013年 10月 28 日
一、试验目的及要求
已知ALOS卫星为用户提供的轨道数据,总共有28个轨道位置点,包括轨道点的时间、空间位置(x,y,z)及其在该点的速度(dx,dy,dz),任意两个轨道点的获取时间相隔为60秒。

要求利用各种数据插值方法计算数据获取时间内任意时刻的卫星所在的位置。

数据文件“LED-ALPSRP063392880-P1.1__D.orbit.txt”提供了卫星平台的相关参数及轨道数据。

请编写程序实现轨道数据的读出、数据插值及轨道加密后的数据文件的存储。

并用三维绘图命令画出地球及相应轨道
二、试验过程
1、数据读取
2、拉格朗日内插法
lagrange
3、文件存储
三、试验代码
fid =
fopen('F:\MATLAB_exp2\LED-ALPSRP063392880-P1.1__D.orbit.txt','r'); vec_num = textscan(fid,'%s%n',1);
vec_num=vec_num{2};
vec_time= textscan(fid,'%s%n%s',1);
vec_time=vec_time{2};
vec_intv=textscan(fid,'%s%n%s',1);
vec_intv=vec_intv{2};
mat_pos=zeros(28,3);
mat_velo=zeros(28,3);
for i=1:28
vec_pos=textscan(fid,'%s%n%n%n%s%s%s',1);
vec_velo=textscan(fid,'%s%n%n%n%s%s%s',1);
mat_pos(i,:)=[vec_pos{2} vec_pos{3} vec_pos{4}];
mat_velo(i,:)=[vec_velo{2} vec_velo{3} vec_velo{4}];
end
fclose(fid)
XT=mat_pos(:,1);
XT=XT';
YT=mat_pos(:,2);
YT=YT';
ZT=mat_pos(:,3);
ZT=ZT';
X1=mat_velo(:,1);
X1=X1';
Y1=mat_velo(:,2);
Y1=Y1';
Z1=mat_velo(:,3);
Z1=Z1';
t=vec_time:60:(vec_time+60*27);
t_interp=vec_time:1:(vec_time+60*27);
y0_x=XT;
y0_y=YT;
y0_z=ZT;
y1_x=X1;
y1_y=Y1;
y1_z=Z1;
xxx = lagrange(t,y0_x,t_interp);
yyy = lagrange(t,y0_y,t_interp);
zzz = lagrange(t,y0_z,t_interp);
plot3(xxx,yyy,zzz);
fid2 = fopen('data.dat','w');
fprintf(fid2,'number_of_state_vectors: %d\r\n',length(t_i nterp));
fprintf(fid2,'time_of_first_state_vector: %d s\r\n',vec_time); fprintf(fid2,'state_vector_interval: 1 s\r\n');
for i=1:length(t_interp)
fprintf(fid2,'state_vector_position_ %d: %.4f %.4f %.4f m m m\r\n',i,xxx(1,i),yyy(1,i),zzz(1,i));
end
fclose(fid2);
四、试验心得
由于近期在准备考取武汉大学的研究生,因此时间较为紧张,所以试验做的相对仓促,只是完成了数据的读取、拉格朗日内插和数据的存储等步骤,但通过这些简单的步骤的编写,还是让我对Matlab这款程序开发软件的强大功能有了更深入的了解,受益良多,所做不足之处在此表示十分抱歉,还望老师谅解!。

相关文档
最新文档