matlab实验三报告

时间:2024.5.19

实验三MATLAB程序设计

一、实验目的

掌握 MATLAB 程序设计的主要方法,熟练编写 MATLAB 函数。

二、实验内容

1. M 文件的编辑。

2.程序流程控制结构。

3.子函数调用和参数传递。

4.局部变量和全局变量。

三、实验步骤

1. M 文件的编辑

选择 MATLAB 的菜单 File→New→M-file,打开新的 M 文件进行辑,然后输入以下内容,并保存文件名为 exp1.m 。

% M脚本文件

%功能:计算自然数列1~100的数列和

s=0;

for n=1:100

s=s+n;

end

s

保存好文件后,在命令窗口输入 exp1 即可运行该脚本文件,注意观察变量空间。接着创建 M 函数文件,然后输入以下内容,并保存文件名为 exp2.m 。

%这是M函数文件

%功能:计算自然数列1~x的数列和

function s=exp2(x)

s=0;

for n=1:x

s=s+n;

end

保存好文件后,在命令窗口输入

>>clear

>>s=exp2(100)

得出结果如下:

>> exp2(200)

ans =

20100

open %命令可以打开M文件进行修改

如:>>open conv %打开conv函数

2. 程序流程控制结构

1) for循环结构

for n=1:10

n

end

另一种形式的 for循环:

n=10:-1:5

for i=n %循环的次数为向量n的列数

i

end

2) while 循环结构

在命令窗口输入:

>>clear,clc;

x=1;

while 1

x=x*2

end

MATLAB 进入死循环,因为 while 判断的值恒为真,须按下 Ctrl+C 键来中断运行,并且可看到 x 的值为无穷大。

3) if-else-end 分支结构

if-else-end分支有如下3种形式

(a) if 表达式

语句组1

end

(b) if 表达式

语句组1

else

语句组2

end

(c) if 表达式 A

语句组1

elseif 表达式B

语句组2

elseif

语句组3

……

else

语句组n

end

4) switch-case 结构

创建 M 脚本文件 exp3.m,输入以下内容并在命令窗口中运行。

%功能:判断键盘输入的数是奇数还是偶数

n=input('n=');

if isempty(n)

error('please input n')

end

switch mod(n,2)

case 1

A='奇数'

case 0

A='偶数'

end

3. 子函数和参数传递 :

function g=exp4(x) %主函数

g=0;

for n=1:x

g=g+fact(n); %调用子函数

end

function y=fact(k) %子函数

y=1;

for i=1:k

y=y*i;

end

输入参数可以由函数 nargin 计算,下面的例子 hanshu( ),当只输入一个参数 x 时,hanshu( )函数会给 y 赋予默认值 0。输出参数可以由nargout计算。

function [sum,n]=hanshu (x,y)

%函数参数个数可变,计算x与y的和

if nargin==1

n =1;

sum = x; %输入一个参数就计算与0的值

elseif nargin==0

n=0;

sum=0; %无输入参数就输出0

else

n=2;

sum=x+y; %输入的是两个数就计算和

end

if nargout ==0

sum=0;

end

4. 局部变量和全局变量

自程序执行开始到退出 MATLAB,始终存放在工作空间,可被任何命令文件和数据文件存取或修改的变量即是全局变量,全局变量可用于函数之间传递参数,全局变量用关键字 global 声明。

编写一个求和的函数文件,其名为 summ.m。程序如下:

function s=summ

global BEG END

k=BEG:END;

s=sum(k);

再编写调用 M 脚本文件use.m来调用 summ.m 函数文件,它们之间通过全局变量传递参数。

程序如下:

global BEG END

BEG=1;

END=10;

s1=summ;

BEG=1;

END=20;

s2=summ;

四、实验练习结果:

1、已知

分别用while循环、for循环和向量求和三种方式编写程序,以求出y的值。

While循环:

function s=abcx(x) %主函数

s=0;

n=1;

while n<51

s=s+rel(n); %调用子函数

n=n+1;

end

function y=rel(n) %子函数

y=0;

y=n/(2*n*n-n+1);

end

得:

ans =

2.3658

for循环:

function s=abcx(x) %主函数

s=0;

for n=1:50

s=s+rel(n); %调用子函数

n=n+1;

end

function y=rel(n) %子函数

y=0;

y=n/(2*n*n-n+1);

end

得:

ans =

2.3658

向量法:

x=[0:50];

X=diag(x);

s=X./(2.*(X.^2)-X+1);

sum=trace(s) %求方阵的迹即对角线之和

disp(sum)

得:

Sum= 2.3658

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

if语句:

x=input('身高为:')

if x>190

disp('很高');

elseif x<=190&&x>180

disp('较高');

elseif x<=180&&x>170

disp('中等');

elseif x<=170&&x>160

disp('较矮');

else disp('矮');

End

Switch语句:

x=input('身高为:');

if x>190

n=1;

elseif x<=190&&x>180

n=2;

elseif x<=180&&x>170

n=3;

elseif x<=170&&x>160

n=4;

else n=5;

end

switch n

case 1

disp('很高');

case 2

disp('较高');

case 3

disp('中等');

case 4

disp('较矮');

case 5

disp('矮');

end

五、思考分析

通过这次实验课,我基本掌握了函数的命名、编写和调用,以及if和switch两种循环结构。需注意函数的命名要放在最开始处,且end后面不能再声明函数,调用函数的保存名称最好和函数名称相同。对matlab的学习应该做到理论学习和实验学习并重,只有通过自己动手编写,才能做到真正掌握。


第二篇:Matlab上机实验报告书模板第三次


Matlab上机实验报告(3)

实验条件:1、计算机 2、MATLAB6.5软件环境

院系:物电学院 学号: 2011112010239 班级:1102 姓名:周晓锋

要求:表格中的字体小四号仿宋体,单倍行距,尽量美观。

更多相关推荐:
matlab实验报告

MATLAB教程及实训实验报告班级:10级专升本学号:姓名:实验1熟悉matlab的开发环境及矩阵操作一、实验的教学目标通过本次实验使学生熟悉MATLAB7.0的开发环境,熟悉MATLAB工作界面的多个常用窗口…

matlab基本操作实验报告

实验一matlab基本操作一实验目的熟悉matlab的安装与启动熟悉matlab用户界面熟悉matlab功能建模元素熟悉matlab优化建模过程二实验设备与仪器1微机2matlab仿真软件三实验步骤1了解mat...

matlab实验报告

课程设计说明书(论文)题目带限数字基带传输系统的仿真课程名称Matlab通信仿真设计专业通信工程班级1203学生姓名学号指导教师设计起止时间:20##年12月18日至20##年12月25日一、课程设计目的和要求…

matlab音乐处理合成实验报告

MATLAB高级编程与工程应用语音合成综合实验姓名班级学号日期121简单的合成音乐1请根据东方红片断的简谱和十二平均律计算出该片断中各个乐音的频率在MATLAB中生成幅度为1抽样频率为8kHz的正弦信号表示这些...

东南大学几何与代数matlab实验报告

数学实验报告学号姓名吴雪松得分实验1求解线性方程组实验内容用MATLAB求解如下线性方程组Axb其中5100A00006510000006510000006510000006510000006510000006...

matlab实验报告

数学实验报告班级:学号:姓名:实验序号:1日期:年月日实验名称:特殊函数与图形u问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到明白直观的体现,如函数的性质等。同时,借助直观的图形,使初…

Matlab实验报告一

数学与信息科学系实验报告实验名称程序设计所属课程数学软件与实验实验类型综合型实验专业信息与计算科学班级20xx级1班学号姓名指导教师1234567

matlab实验报告

MATLAB实验报告1在区间11上分别取n1020用两组选中节点对龙格函数fx插值及三次样条插值对每个n值分别画出插值函数及fx的图形解n10在matlab命令窗口中键入gtgtx1021y1125x2y1in...

matlab实验报告格式

数学实验报告实验序号:1日期:20XX年10月20日班级姓名学号实验名称:特殊函数与图形问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到明白直观的体现,如函数的性质等。同时,借助直观的图…

matlab实验报告

重庆交通大学学生实验报告实验课程名称专业综合实验开课实验室交通运输工程实验教学中心学院交通运输年级二年级专业班交通运输1班学生姓名学号63120xx20开课时间20xx至20xx学年第2学期

matlab实验报告

南京工程学院课程设计说明书论文题目课程名称院系部中心专业班级学生姓名学号设计地点指导教师设计起止时间20xx年12月8日至20xx年12月12日一课程设计目的和要求1综合运用信号与线性系统通信原理以及matla...

Matlab实验报告

程序设计训练报告题目学生姓名学生学号专业班级指导老师20xx年6月22日一实验名称用matlab处理基本运算与画图二实验目的1掌握二维曲线绘图的基本方法与命令2掌握一个窗口多个图形的画法分割子窗口的画法三实验说...

matlab实验报告(13篇)