实验类型:◆验证性实验 ◇综合性实验 ◇设计性实验
实验目的:
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
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函数有了一个初步认识后使用中输不出自己想要的结果等等。调试好多遍,弄对了以后特别高兴。希望在后面的实验中也可以慢慢进步,自我总结,自我提高。