MATLAB结构化程序设计

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

MATLAB结构化程序设计_第1张图片

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

MATLAB结构化程序设计_第2张图片

的值。

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

输出结果如下:

MATLAB结构化程序设计_第3张图片


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

MATLAB结构化程序设计_第4张图片

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

MATLAB结构化程序设计_第5张图片

你可能感兴趣的:(MATLAB,matlab,开发语言)