Bootstrap

matlab程序设计

实验类型:验证性实验  综合性实验  设计性实验

实验目的

1. 掌握M文件的建立和调用方式;

2. 熟练循环结构的编写、运行;

3. 会创建矩阵,会对给定矩阵进行结构变换;

4. 练习Matlab程序的调试。

实验内容

1. 编制一个函数,使其实现对输入的两个数值进行比较并返回其中的最小值。

2. 编写一个函数 project1.m,其功能是判断某一年是否为闰年,例如1997年、2008年、2023年。

3. 按照下面矩阵特点,定义一个7*12的矩阵A

实验原理

1.Function函数:

由以下几个部分组成:

1function(关键字):首先得告诉MATLAB,这是一个函数定义,而非普通的脚本文件。

2函数名:就是这个“函数块”的名称(通常和文件名相同)。

3输入参数和输出参数:前者是括号内,后者是等号后面描述的。

4函数体:由function和end之间的代码,是执行该函数的主要代码。

2.if-else结构

(1)语法:if语句使用的是条件表达式。

(2)匹配方式:if语句根据条件表达式的真假来确定执行的代码分支。

(3)匹配数量:if语句可以包含多个elseif分支或一个可选的else分支,每个分支都有自己的条件表达式。

(4) 执行方式:if语句是按顺序逐个检查每个条件表达式,并执行第一个为真的分支中的代码。

3.矩阵建立、修改

a=[] 产生一个空矩阵;

b=zeros(m,n) 产生一个m行、n列的零矩阵;

c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵;

d=eye(m,n)产生一个m行、n列的单位矩阵;

A(i,:)表示矩阵A的第i行;

A(:,j)表示矩阵A的第j列;

实验步骤

1. 上机实验前先编写出程序代码

2. 录入、编辑程序

3. 调适程序至正确运行

4. 记录运行时的输入和输出

5. 对程序做进一步完善

程序代码

1.

function result = compare(x, y)

if x > y

    result = sprintf('%g 大于 %g', x, y);

elseif x <y

    result = sprintf('%g 小于 %g', x, y);

else

    result = sprintf('%g 等于 %g', x, y);

 end

end

命令行窗口输入:

x = input('请输入第一个变量 x 的值:');

y = input('请输入第二个变量 y 的值:');

result = compare(x, y);

disp(result);

2.

a = input('请输入一个年份用来判断:')

if(( rem(a,100)~= 0 && rem(a,4) == 0 )|| (rem(a,100) == 0 && rem(a,400) == 0))

    disp('这一年是闰年')

else

    disp('这一年不是闰年')

end

3. A=zeros(3,4);

A(1,:)=1;

B=zeros(3,4);

B(2,:)=1;

C=zeros(3,4);

C(3,:)=1;

a=eye(4);

b=[A B C;a a a]

程序输出:

省略

实验总结

在此次实验中,对matlab有了一个初步的认识,感觉matlab很有意思,不同于DEVC、VC++ 6.0和VS,对于初级入门选手的我,在其中更多体会到的是自己完成题目时的开心。

在此次实验中,对于上述三个题目,我也有不同的收获。第一个题目我收获了function函数的初步使用,第一、二个题目是对if-else函数在matlab的一个训练,第三个题目则是对矩阵的构造有了一个认识与体会。

在实验过程中也是遇到了很多的问题,比如:知道矩阵构造的特点但不会把它表示出来;对function函数有了一个初步认识后使用中输不出自己想要的结果等等。调试好多遍,弄对了以后特别高兴。希望在后面的实验中也可以慢慢进步,自我总结,自我提高。

;