3. Matlab程序流程控制(1)

A 顺序结构程序

1、 程序和程序设计
在这里插入图片描述
在这里插入图片描述


2、 程序的三种基本结构

  • 顺序结构
  • 选择结构
  • 循环结构

3、脚本文件和函数文件
在这里插入图片描述


4、文件的建立
在这里插入图片描述

  • edit命令创建文件
    edit test%创建test.m文件
    例题:
    在这里插入图片描述

5、顺序结构

x = input(prompt) %输入的东西当成数字或者矩阵
str = input(prompt,‘s’) %输入的东西当成字符串存起来

fprintf也可以

x = input('请输入X的值');
if rem(x,3)==1
   y = sqrt(x);
elseif rem(x,3)==2
   y = x^(1/3);
else
   y = power(x,2);
end
fprintf('结果为%d',y);
y

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
disp不会显示变量的名字和空格,输出格式更加紧凑。
在这里插入图片描述
在这里插入图片描述


B 用if语句实现选择结构

1、什么是选择结构
在这里插入图片描述

2、if语句
在这里插入图片描述
在这里插入图片描述
例题:
在这里插入图片描述
在这里插入图片描述
例题:’’s’:input()返回数据类型为字符

c = input('请输入一个字符','s');
if c >= 'A' && c <='Z'
   disp(lower(c));
elseif c >= 'a' && c <= 'z'
   disp(upper(c));
elseif c >= '0' && c <= '9'
   disp(str2double(c)^2);
   %  将字符串转化为double类型的数字
else
   disp(c);
end

在这里插入图片描述

C 用switch语句实现选择结构

1、switch语句的格式
在这里插入图片描述

  • switch表达式应该是一个其值可以列举的表达式(如整形表达式,字符串表达式)。
  • case结果表为switch表达式的取值,当取值有多个时,用单元数据表示,也就是将多个结果用大括号括起来。

例子:

x = input('x = ?');
switch fix(x)
    case 2
        disp(111);
    case 2
        disp(222);
    case {3,4,5}
        disp(333);
    otherwise
        disp(444)
end
%x = ?2
   %111
%x = ?8
   %444

在这里插入图片描述

输入一个英文单词i,判断它是否以元音字母开头
%法一
c = input('请输入一个单词:','s');
switch c(1)
    %取单词首字母
    case{'A','E','I','O','U','a','e','i','o','u'}
        disp([c,'以元音字母开头']);
    otherwise
        disp([c,'以辅音字母开头']);
end

%法二
c = input('请输入一个单词:','s');
if strfind(c(1),'AEIOUaeiou') > 0
    disp([c,'以元音字母开头']);
else
    disp([c,'以辅音字母开头']);
end

例题:num2cell():将数值矩阵转化为单元矩阵

g = input('请输入PM2.5值:');
%fix() 取整
switch fix(g)
    case num2cell(0:34)
        disp('空气质量优');
    case num2cell(35:74)
        disp('空气质量良好');
    case num2cell(75:114)
        disp('空气质量轻度污染');
    case num2cell(115:149)
        disp('空气质中度污染');
    case num2cell(150:249)
        disp('空气质量重度污染');
    otherwise
        disp('空气质量严重污染');
end

在这里插入图片描述
在这里插入图片描述

D 用for语句实现循环结构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


>> for k = [1,3,5,7]
k
end
k =
     1
k =
     3
k =
     5
k =
     7
     
>>  for k = [1,3,5,7]
end
>> k
k =
     7
%求圆周率pai

%法一
y = 0;
g = -1;
n = input('n=?');
for i = 1 :n
    g= -g;
    y = y+g*1/(2*i-1);
end
pai = 4*y

%法二 向量组
n = input('n=?');
x = 1:2:(2*n-1);
y = (-1).^(2:n+1)./x;
pai = sum(y)*4

%法三 定积分 为四分之一单位圆面积
a = 0;
b = 1;
n = input('n = ?');
h = (b - a)/n;
x = a:h:b;
f = sqrt(1-x.*x);
s = [];  
for k = 1:n
    s1 = (f(k)+f(k+1))*h/2;
    % 梯形体积
    s = [s,s1];
    % s1追加到s
end
pai = 4*sum

%法四 蒙特卡洛法 撒豆 概率
s = 0;
n = input('n = ?');
for i = 1:n
    x = rand(1);
    y = rand(1);
    if x*x+y*y <= 1
        s = s+1;
    end
end
pai = s/n*4


%循环四次
for k = [1,2,3,4] 
%循环一次
for k = [1;2;3;4] 
%MATLAB竖着读向量

for执行时是将矩阵的列向量赋给循环变量,行向量可以看成仅为一行的矩阵,每一列只有一个元素。
在这里插入图片描述


E 用while语句实现循环结构

在这里插入图片描述

%输入0结束,求平均值和他们的和
msum = 0;
n = 0;
x = input('Enter a number(end in 0):');
while x ~= 0
    msum = msum + x;
    n = n + 1;
    x = input('Enter a number(end in 0):');
end
if n > 0
    msum
    mean = msum/n
end

在这里插入图片描述


在这里插入图片描述

例题:
在这里插入图片描述


for n  =100:200
    if rem(n,21)==0
        n
        break;
    end
end

在这里插入图片描述


%求素数
m = input('m  = ');
p = 1:m;
p(1) = 0;
for i = 2:sqrt(m)
    %内循环划去i的倍数
    for j =2*i:i:m
        p(j) = 0;
    end
end
n  =find (p~=0);
p(n)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追寻远方的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值