数据的输入与输出以及程序流控制语句

1. 数据的输入与输出

在 MATLAB 中,input 函数用于实现数据的输入;disp 函数用于实现数据的输出。调用格式如下:

  • A=input(提示信息,选项):提示信息是一个字符串,用于提示用户输入什么样的数据。
  • A=input(‘A=’):如果在 input 函数调用时采用’s’选项,则允许用户输入一个字符串。

  • disp(输出项):其中输出项既可以为字符串,也可以为矩阵。当用 disp 函数显示矩阵时,将不显示矩阵的名字,而且其格式更紧密,且不留任何没有意义的空行。

下面我们通过一个简单的例子进行说明。

%% 求一元二次方程 ax^2+bx+c=0 的根

    a=input('a=');
    b=input('b=');
    c=input('c=');
    d=b*b-4*a*c;
    x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]
    disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);

2. 判断语句

  • 当程序只有一个判断语句时,可以选择 if…end 结构
 if 表达式
        执行程序块
 end

注意:句中的 end 是不可少的,没有它,在逻辑表达式为假时,就找不到继续执行程序的入口。

  • 当程序有两个选择时,可选择 if…else…end 结构。
if 表达式 1
        执行程序块 1
else
        执行程序块 2
end
  • 当有多个选择时,可以采用 if…elseif…else…end 结构。
if 表达式 1
        执行程序块 1 
elseif 表达式 2
        执行程序块 2     
elseif ...
...
else
        执行程序块
end

例如:判断输入学生的成绩所属的等级:60分以下为不合格,60~70为中等,70~89为良好,90以上为优秀。

    n=input('input the score:')
    if n>=0 & n<60
        A='不合格'
    elseif n>=60 & n<70
        A='中等'
    elseif n>=70 & n<89
        A='良好'
    elseif n>=90
        A='优秀'
    else 
        A='输入错误'
    end

3. 分支语句

分支语句的结构如下:

switch 分支语句
    case 条件语句
        执行程序块
    case {条件语句1,条件语句2,条件语句3...}
        执行程序块
    otherwise
        执行程序块
end

其中,分支语句为一个变量(数值或字符串变量),如果该变量与某一条件相符,则执行相应的语句,否则,执行 otherwise 后面的语句。在每一个条件中,可以包含一个条件语句,也可以包含多个条件,当包含多个条件时,可将条件以单元数组的形式表示。

    %% 底对数的实现
    A=input('底:');
    B=input('对数值:');
    switch A
        case exp(1)
            y=log(B)
        case 2
            y=log2(B)
        case 10
            y=log10(B)
        otherwise
            y=log(B)/log(A)
    end

4. 循环语句

  • for 循环语句,其调用的基本格式如下:
    for index=初值:增量:终值
        语句组 A
    end

此语句表示把语句组 A 反复执行 N 次,循环次数 N(需要预先指定)为 N=1+(终值-初值)/增量 。在每次执行过程中,index 的值按“增量”增加。

    %%建立一个100阶数组,数组中的每一个元素A(k,n)满足A(k,n)=1/(k+n-1).
    for k=1:100
        for n=1:100
            A(k,n)=1/(k+n-1);
        end
    end
  • while 循环,其结构为
while 表达式
    执行程序块
end

while 语句用于将相同的程序块执行多次(次数不需要预先指定),当条件表达式为真时,执行程序块,直到条件表达式为假。

    %% 求解最小的 m,使其满足 1~m 项之和大于100.
    s=0;
    m=0;
    while (s<=100)
        m=m+1;
        s=s+m;
    end
    disp(['m=',num2str(m),',s=',num2str(s)])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值