1、实验目的:
1)巩固并加深对MATLAB语言程序设计知识的理解;
2)掌握和提高MATLAB语言编程和程序调试的基本技能;
3)进一步理解和运用结构化程序设计的思想和方法;
4)提高运用MATLAB语言解决实际问题的能力。
2-1)、分别使用for语句和while语句求1~100的和。
clear all
sum = 0;
for i = 1:100 %for 循环求和
sum = sum + i;
end
sum
clear all
i = 1;
sum = 0;
while (i <= 100) % while循环求和
sum = sum + i;
i = i+1;
end
sum
while语句可以用来实现“当”型的循环结构,它的一般形式如下:
while(表达式)
MATLAB循环语句体
end
使用for语句循环需要预先知道循环体的执行次数,这种循环一般交确定循环
for循环的基本结构形式如下:
for 循环变量 = 变量初值:步长值:变量终值
MATLAB循环语句体
end
在MATLAB语句之后必须使用关键字end作为整个循环结构的结束
注意MATLAB中没有类似C语言中 ++、+=等运算操作符
2-2)、编写分段函数
的M函数文件,存放于文件ff.m中,并计算出
的值。
根据题目要求,我们先新建一个M函数文件,将分段函数表达式,用if elseif else 选择结构的形式描述出来即可
function y = ff(x)
%分段函数表达式
if (x>=0 & x<1)
y = x;
elseif (x>=1 & x<=2)
y = 2*x-1;
else
y = 0;
end
在命令文件中调用这个函数
y = ff(-3)
y = ff(1/2)
y = ff(sqrt(2))
输出结果如下:
2-3)、编程实现将百分数的分数转化为五级制分数,如:90~100:优、80~89:良、70~79:中、60~69:及格、59以下为不及格,并可将屏幕上任意输入的百分制成绩转换为五分制成绩。
grade = input('请输入百分制成绩');
switch fix (grade / 10) %fix向下取整
case{9,10}
grade = '优';
case{8}
grade = '良';
case{7}
grade = '中';
case{6}
grade = '及格';
otherwise %其他
grade = '不及格';
end
grade
先用input语句输入成绩,如果想将百分制成绩转换为五分制成绩,用switch case结构更好一点,可以先将成绩范围缩小 fix (grade / 10),将成绩除以10再向下取整,就可以实现60~69的成绩段用6代替,80~89的成绩用8来代替…… switch case最后也要加end
最后将grade输出看结果
2-4)、使用嵌套for语句求矩阵A的所有元素之和,要求矩阵A由向量变形而来(使用reshape函数)。
clear all
A = [1:25]; %生成1~25的行向量
A = reshape(A, [5,5]); %使用reshape函数,重构成5*5的矩阵
[m, n] = size(A);
sum = 0;
for i = (1:m) %嵌套for循环语句 求矩阵所有元素之和
for j = (1:n)
sum = sum + A(i,j);
end
end
sum
这里用到了双重for循环嵌套,遍历每一个元素求和,注意MATLAB中循环语句的写法和C语言略有不同~_~