MATLAB结构化程序设计(四)

简介: MATLAB结构化程序设计(四)

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)、编写分段函数

c78e50a4ab316de5858a10f60bb1e46d_a2c758b0d9274e9eb28f7d6b19133c5d.png

的M函数文件,存放于文件ff.m中,并计算出

7bcc63c7b47c753588d454d32b051d34_c0de72ca4d7c4ed9bab17bc784948631.png

的值。

根据题目要求,我们先新建一个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))

输出结果如下:

868f958019f65563a2faa8f63c353fa8_7cbcb99e1b4e40a5852fb61cb7e2fdfa.png


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函数)。

4cb4b3c5e55c59206900cb75ecbcdaf1_c0e627f55efe4c8ca9130eff10ae5cd9.png

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语言略有不同~_~

acf62bee7c1d250f9e7a7601925b2606_ac45de3cd39f41ecaed264df1e02d4d8.jpeg

相关文章
MATLAB程序设计基础(三)
MATLAB程序设计基础(三)
102 0
二样本感知器的matlab程序设计
二样本感知器的matlab程序设计
79 0
|
数据安全/隐私保护
【Matlab作业】MATLAB程序设计
【Matlab作业】MATLAB程序设计
|
C语言
MATLAB程序设计
MATLAB有两种工作方式: 交互式的命令行工作方式 M文件的程序工作方式 用MATLAB语言编写的程序,称为M文件。 M文件有两类:命令文件(Script M-file)和                          函数文件(Function M-file).命令文件与函数文件的区别:1.命令文件没有输入参数,也不返回输出   参数;函数文件可以输入参数,也可返   回若干输出参数。
887 0
|
9天前
|
传感器 算法
ANC主动降噪理论及Matlab代码实现
ANC主动降噪理论及Matlab代码实现
|
2月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
2月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)