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