MATLAB实验报告一二三 - 图文

更新时间:2024-04-26 12:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2015秋2013级《MATLAB程序设计》实验报告

2015秋2013级《MATLAB程序设计》实验报告

实验一 班级:软件131 姓名:付云雷 学号:132872 一、实验目的:

1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。

2、掌握MATLAB常用命令的使用。 3、掌握MATLAB帮助系统的使用。

4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。 二、实验内容:

1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。

图1 MATLAB工作桌面

2、MATLAB的常用命令与系统帮助: (1) 系统帮助

help:用来查询已知命令的用法。例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。

lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入 lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。找到所需

共37 页,第 1页

2015秋2013级《MATLAB程序设计》实验报告

的命令後 ,即可用help进一步找出其用法。

(2) 数据显示格式:

常用命令: 说明

format short 显示小数点后4位(缺省值) format long 显示15位 format bank 显示小数点后2位 format + 显示+,-,0 format short e 5位科学记数法 format long e 15位科学记数法 format rat 最接近的有理数显示

(3) 命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。

具体用法如下:

↑----重调前一行(可重复使用调用更早的) ↓----重调后一行 →----前移一字符 ←----后移一字符 home----前移到行首 end----移动到行末 esc----清除一行 del----清除当前字符 backspace----清除前一字符 (4) MATLAB工作区常用命令:

who--------显示当前工作区中所有用户变量名

whos--------显示当前工作区中所有用户变量名及大小、字节数和类型 disp(x) -----显示变量X的内容

clear -----清除工作区中用户定义的所有变量

save文件名-----保存工作区中用户定义的所有变量到指定文件中 load文件名-----载入指定文件中的数据

3、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算

共37 页,第 2页

2015秋2013级《MATLAB程序设计》实验报告

结果。

(1) 计算(365-52?2-70)?3

(2) >>area=pi*2.5^2

(3) 已知x=3,y=4,z?x2y3?x?y?2在MATLAB中求z:

(4) 利用who,whos命令查看工作空间内的所有变量,并比较两种命令区别。

共37 页,第 3页

2015秋2013级《MATLAB程序设计》实验报告

(5) 使用clear命令删除工作空间内的所有变量。提示:MATLAB有一些永

久常数(Permanent Constants)如表所示,虽然在工作空间中看不到,但使用者可直接取用。

表1.1 MATLAB中常用的变量,常量

特殊的变量、常量 ans pi eps inf NaN i,j 取 值 用于结果的缺省变量名 圆周率π的近似值(3.1416) 数学中无穷小(epsilon)的近似值(2.2204e - 016) 无穷大,如 1/0 = inf (infinity) 非数,如 0/0 = NaN (Not a Number),inf / inf = NaN 虚数单位:i = j =?1 (6) 将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字

节数。

?162313??511108?? m1=??97612????414151?共37 页,第 4页

2015秋2013级《MATLAB程序设计》实验报告

执行以下命令,观察结果: >>m1(2,3)

>>m1(11)

>>m1(:,3)

>>m1(2:3,1:3)

共37 页,第 5页

2015秋2013级《MATLAB程序设计》实验报告

>>m1(1,4) + m1(2,3) + m1(3,2) + m1(4,1)

(7) 执行命令>>help abs,查看函数abs的用法及用途,计算abs(3 +4i)。

(8) 执行命令:

>>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y)

共37 页,第 6页

2015秋2013级《MATLAB程序设计》实验报告

(9) 在matlab的命令窗口里完成如下计算,其中t的值分别取-1,0,1,表达式

如下:

y?3?4t?e?sin(43t??/3)2

共37 页,第 7页

2015秋2013级《MATLAB程序设计》实验报告

(10) 求方程组的根:

?x1?4x2?3x3?2??2x1?5x2?x3?11 ?x?6x?x?12?123

(11) 一个多项式的系数向量是p=[1 -6 -72 -27],求这个多项式的根并写出多

项式。

4、思考题

(1) 以下变量名是否合法?为什么?

a) x2 合法 b) 3col 不合法

共37 页,第 8页

2015秋2013级《MATLAB程序设计》实验报告

c) _row 不合法 d) For 不合法

(2) 求以下变量的值,并在MATLAB中验证。

a) a=1:2:5;

b) b=[a' a' a'];

c) c=a+b(2,:)

共37 页,第 9页

2015秋2013级《MATLAB程序设计》实验报告

2015秋2013级《MATLAB程序设计》实验报告

实验二 班级:软件131 姓名:付云雷 学号:132872 一、实验目的

1、掌握矩阵和数组的表示与赋值方法

2、了解字符串、结构和单元等数据类型在MATLAB中的使用 3、掌握MATLAB中基本的数值运算,了解基本统计函数的使用 4、掌握多项式基本运算以及线性方程组的求解方法 二、实验内容

1、利用“:”操作符和linspace函数生成数组a=[0,6,12,18,24,30,36,42],并将数组a分别转化为4*2和2*4的矩阵。

1??368?-572217??,并使用MATLAB回2、在MATLAB中输入矩阵A???6916-12????1513-210?答以下的问题:

共37 页,第 10页

2015秋2013级《MATLAB程序设计》实验报告

(1) 创建一个由A中第2列到第4列所有元素组成的4Χ3数组B;

(2) 创建一个由A中第3行到第4行所有元素组成的2Χ4数组C;

(3) 创建一个由A中前两行和后三列所有元素组成的2Χ3数组D;

(4) 根据A利用单下标方法和双下标方法分别创建向量a=[-5 6 15]和向量

??56?b=[6 8 1],并利用向量a和b生成矩阵E??68?;

????151??共37 页,第 11页

2015秋2013级《MATLAB程序设计》实验报告

(5) 利用“[]”删除矩阵A的第二行和第三列。

3、利用ones()函数和zero()函数生成如下矩阵:

?0?0?A??0??0??00000?1110??1310?

?1110?0000??共37 页,第 12页

2015秋2013级《MATLAB程序设计》实验报告

??4?12?4、生成矩阵A???303?:

?????214??

(1) 取出所有大于0的元素构成一个向量a(可推广到从一个矩阵里筛选出

符合条件的元素组成一个向量)。

(2) 将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表

示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。

共37 页,第 13页

2015秋2013级《MATLAB程序设计》实验报告

5、已知a???123??456??,b???24?1??1??1?135??,c???0?d??8??,???2????3算是否合法,为什么?如合法,写出计算结果? (1) result1=a' %合法,将矩阵转置

(2) result2=a*b %不合法,a和b矩阵不能相乘 (3) result3=a+b %合法,将a和b矩阵对应元素相加

(4) result4=b*d %合法,将b和d矩阵相乘

(5) result5=[b;c']*d %合法

共37 页,第 14页

47?52?0?下列运6??2015秋2013级《MATLAB程序设计》实验报告

(6) result6=a.*b %合法,将a和b对应元素相乘

(7) result7=a./b %合法,用a除以b中对应元素

(8) result8=a.*c %不合法,a和c不能进行.*运算 (9) result9=a.\\b %合法,用b除以a中对应元素

(10)

result10=a.^2 %合法,将a中所有元素平方

(11) (12)

result11=a^2 %不合法,a必须为方阵

result11=2.^a %合法,将2^a(I,j)构成新矩阵的第(I,j)个元素

共37 页,第 15页

2015秋2013级《MATLAB程序设计》实验报告

?134???784?6、已知a??51244?,b??122438?,c?[1,0,8,3,6,2,?4,23,46,6]

???????7827???68?53??

(1) 求a+b,a*b,a.*b,a/b,a./b,a^2,a.^2的结果,并观察运算结果。

共37 页,第 16页

2015秋2013级《MATLAB程序设计》实验报告

(2) 求c中所有元素的平均值、最大值、中值,并将c中元素按从小到大顺

序排列。

(3) 解释b(2:3,[1,3])的含义,并将生成的数组赋值给d。

得到第二行到第三行中第一列和第三列的元素并构成矩阵。

共37 页,第 17页

2015秋2013级《MATLAB程序设计》实验报告

关系运算与逻辑运算

7、已知a=20,b=-2,c=0,d=1,计算下列表达式: (1) r1=a>b (2) r2=a>b&c>d (3) r3=a==b*(-10) (4) r4=~b|c

21?2??7?9153?2?? 8、已知A????2?2115???13213??(1) 求矩阵A的秩(rank);

(2) 求矩阵A的行列式(determinant);

共37 页,第 18页

2015秋2013级《MATLAB程序设计》实验报告

(3) 求矩阵A的逆(inverse);

(4) 求矩阵A的特征值及特征向量(eigenvalue and eigenvector)。

9、已知多项式f1(x)=2x4-x2+3x+2,f2(x)=3x+2,利用MATLAB进行如下计算: (1) 计算两多项式的乘法和除法;

(2) 求多项式f1(x)的根;

共37 页,第 19页

2015秋2013级《MATLAB程序设计》实验报告

(3) 分别计算多项式当x=3以及x???13?时的值。 ??24?

10、用两种方法求下列方程组的解,并比较两种方法执行的时间。

?7x1 ?14x2?9x3?2x4?5x5?3x ?15x?13x?6x?4x12345????11x1 ?9x2?2x3?5x4?7x5?5x ?7x?14x?16x?2x2345?1???2x1 ?5x2?12x3?11x4?4x5?100?200?300?400?500

共37 页,第 20页

2015秋2013级《MATLAB程序设计》实验报告

11、建立一个元胞数组,要求第一个元素为4Χ4的魔术矩阵,第二个元素为18.66,第三个元素为'matlab',第四个元素为等差数列7,9,11,13…99。计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第10个元素。

12、建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。问题是:

(1) 如何找到第2个人的分数并显示出来;

共37 页,第 21页

2015秋2013级《MATLAB程序设计》实验报告

(2) 如何找到第2个人的每门课程3个阶段的平均分数并显示出来;

(3) 所有同学的10门课程的每门课程的平均分如何计算出来?要求放到一

个数组里;

(4) 找到这个班所有同学的姓名放到一个元胞数组里;

13、完成以下操作:

(1) 已有str=‘decision 20 made on 10/20/10’,查找字符串中20出现的位置。

(2) 有字符串s1=‘matlabexpress’,s2=‘matlabexcellent’,比较两个字符串

共37 页,第 22页

2015秋2013级《MATLAB程序设计》实验报告

的前8个字符是否相同,相同输出1,否则输出0。

(3) 统计字符串s1=‘matlabexpress’中ex出现的次数,并替换为EX。

共37 页,第 23页

2015秋2013级《MATLAB程序设计》实验报告

2015秋2013级《MATLAB程序设计》实验报告

实验三 班级:软件131 姓名:付云雷 学号:132872 一、实验目的

1、掌握建立和执行M文件的方法。

2、掌握选择结构、多分支选择结构程序的编程方法。 3、掌握多种循环结构程序的编程方法。 4、掌握定义函数文件和调用函数文件的方法。 二、实验内容

1、MATLAB M文件的创建与使用。

(1) 建立自己工作目录,如D:\\MATLAB。在File菜单中,单击Set Path菜单项,在弹出对话框中建立目标文件夹,:单击Add Folder按钮,将自己的工作目录D:\\MATLAB添加到搜索目录之中,按Save按钮保存,如图1。

图1 工作目录设置

(2) 在M文件编辑器中编制命令行文件。在File菜单中,单击New—>M-File,弹出M文件编辑器,如图2:

共37 页,第 24页

2015秋2013级《MATLAB程序设计》实验报告

图2 编辑器

在编辑器中输入如下命令程序:

%求小于2000且为2的整数次幂的正整数。 f(1)=2; k=1;

while f(k)<1000 f(k+1)=f(k)*2; k=k+1; end f,k

调试后,将其以test1.m形式保存在D:\\MATLAB中。 (3) 命令行程序运行。进入命令窗口,键入test1,观察运行结果:

(4) 按上述步骤,在在编辑器中输入如下函数文件:

function f=tt(n)

%求小于任何正整数且为2的整数次幂的正整数。 %c=n(n)

%n可取任意正整数。 %

共37 页,第 25页

2015秋2013级《MATLAB程序设计》实验报告

04年8月。 f(1)=2; k=1;

while f(k)

调试后,将其以test2.m形式保存在D:\\MATLAB中。 (5) 进入命令窗口,键入test2(9),观察程序运行结果。

2、编写一个函数M文件,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。

?sinx,?y(x)??x,??x?6,?选择一些数据测试编写的函数。

x?00?x?3 x?3

共37 页,第 26页

2015秋2013级《MATLAB程序设计》实验报告

3、编写一个函数M文件,返回向量x中元素的和、平均值、最大值、最小值、均方根值。其中方均根值(Root Mean Square)的计算公式为:

rms?并用下面数据测试你写的函数:

1N2x?ii?1N

(1) x=sin(0:0.01:6*pi)

(2) x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。

共37 页,第 27页

2015秋2013级《MATLAB程序设计》实验报告

4、编写一个函数M文件,若给出一个向量x?[x1,x2,?xn],函数返回如下范德蒙矩阵。

1?1?xx2?12x2?x12????n?1n?1?x2?x1?????1?xn??2xn? ???n?1?xn?1??111?2345??,例如在命令窗口输入>>v=myvander([2 3 4 5]),得v???491625???82764125??同时生成一些数据测函数。

5、分别使用while和for编写命令文件,用循环语句编程计算s值:

共37 页,第 28页

2015秋2013级《MATLAB程序设计》实验报告

s??(n3?n2)n?210

同时对编写的文件设置断点,观察变量取值的变化情况。

6、数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如:

2?1

3?10?5?16?8?4?2?1 6?3?10?5?16?8?4?2?1

建立命令M文件,完成上述功能,要求显示数字处理过程。

共37 页,第 29页

2015秋2013级《MATLAB程序设计》实验报告

7、设计一个学生身高的管理系统,输出身高的基本分为5等:很高、较高、中等、较矮、矮,其中190cm以上为“很高”,[180cm,190cm)区间为“较高”,[170cm,180cm)为“中等”,[1160cm,170cm)为“较矮”,160cm以下为“矮”,要求分别用if语句和switch语句实现

共37 页,第 30页

2015秋2013级《MATLAB程序设计》实验报告

共37 页,第 31页

2015秋2013级《MATLAB程序设计》实验报告

8、Fibonacci数组的元素满足Fibonacci规则:

ak+2=ak+ak+1,(k=1,2,3,?);且a1= a2=1。

请设计一段程序,求出该数组中第一个大于10000的元素

要求显示的结果为: i=21 a(i)=10946 或者 a(21)=10946

9、编写一个函数文件and.m,用于求两个输入矩阵的乘积和点乘,然后在

共37 页,第 32页

2015秋2013级《MATLAB程序设计》实验报告

命令行窗口中调用该函数,要求:

(1) 当两矩阵是尺寸相同的方阵时,返回它们的乘积和点乘。

(2) 当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘

(3) 当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”

共37 页,第 33页

2015秋2013级《MATLAB程序设计》实验报告

10、编写一个阶乘函数factorial.m,然后在如下程序中调用该函数, “分别使用for和while语句找出最小的n值,使得n!>10100,并求出n!”

共37 页,第 34页

2015秋2013级《MATLAB程序设计》实验报告

11、下列程序用来判断一个人的体温是否处于危险状态。调试程序是否正确,如果程序错误指出错误在哪里?并写出正确答案。

temp=input(‘请输入体温: temp = ’); if temp < 36.5 disp(‘体温偏低’); elseif temp > 36.5

disp(‘体温正常’);

elseif temp > 38.0

disp(‘体温偏高!’);

elseif temp > 39

disp(‘体温高!!’);

end

该程序体温范围设置不正确,elseif中的范围应该是相互不会包含的,而此

共37 页,第 35页

2015秋2013级《MATLAB程序设计》实验报告

程序则上一条语句的范围包含下一条语句的范围,例如:当输入40时会显示体温正常,

12、使用嵌套for循环命令创建下列矩阵:

?5?1?A??0??0??01000?5100??1510?

?0151?0015??

共37 页,第 36页

2015秋2013级《MATLAB程序设计》实验报告

共37 页,第 37页

本文来源:https://www.bwwdw.com/article/aw3p.html

Top