Matlab程序设计

1.switch-case-end结构

function grade_assess(Name,Score)
%此函数用来评定学生的成绩
%Name,Score为参数,需要用户输入
%Name中的元素为学生姓名
%Score中元素为学分数
%编写日期 2014-6-21

%统计学生人数
n = length(Name);

%将分数区间划开:优(85~100),良(70~84),及格(60~69),不及格(60以下)
for i = 0:15
    A_level{i+1}=85+i;
    if i<=14
        B_level{i+1}=70+i;
        if i<=9
            C_level{i+1}=60+i;
        end
    end
end
%创建存储成绩等级的数组
Level=cell(1,n);
%创建结构体S
S = struct('Name', Name, 'Score', Score, 'Level', Level);

%根据学生成绩,给出相应的等级

for i = 1:n
    switch S(i).Score
        case A_level
            S(i).Level = '优';
        case B_level
            S(i).Level = '良';
        case C_level
            S(i).Level = '及格';
        otherwise
            S(i).Level = '不及格'
    end
end

%显示所有学生的成绩等级评定
disp(['学生姓名',blanks(4),'得分',blanks(4),'等级']);
for i=1:n
    disp([S(i).Name,blanks(8),num2str(S(i).Score),blanks(6),S(i).Level]);
end

>> Name = {'赵一','王二','张三','李四'};
>> Score = {90,46,84,71};
>> grade_assess(Name,Score);
学生姓名    得分    等级
赵一        90      优
王二        46      不及格
张三        84      良
李四        71      良
>> 

2.try-catch-end结构

try

    语句组1

catch

    语句组2

end

在程序不出错的情况下,这种结构只有语句组1被执行;若程序出现错误,那么错误信息将被捕获,并存放在lasterr变量中,然后执行语句组2;若在执行语句组2的时候,程序又出现错误,那么程序将自动终止,除非相应的错误被另一个try-catch-end结构所捕获.


>> errorcatch
10的阶乘为:
程序有错误
错误为:

ans =

Undefined function or variable "S".

>> 

从上面这个例子,我们可以清楚地看到try-catch-end结构的运行顺序,先逐行运行try和catch之间的语句,当运行到第八行时出现错误,即"S"没有定义,系统将这一错误信息捕获并将其保存到变量lasterr中,然后执行catch与end之间的程序行.

3.echo命令

该命令用来控制M文件在执行过程中显示与否,它通常用在对程序的调试与演示中.echo命令的调用格式如下:

调用格式                                    说明

echo on                                     显示M文件执行过程

echo off     不显示M文件执行过程

echo                                           在上面两个命令间切换

echo FileName on                  显示名为FileName的函数文件的执行过程

echo FileName off                   关闭名为FileName的函数文件的执行过程

echo FileName                     在上面两个命令间切换

echo on all                                显示所有函数文件的执行过程

echo off all                                显示所有函数文件的执行过程

注意:上面命令中涉及到的函数文件必须是当前内存中的函数文件,对于那些不在内存中的函数文件,上述命令将不起作用.实际操作时,可以利用inmem命令来查看当前内存中有哪些函数文件.



>> A = [];
>> B = [3 4];
>> C = sumAB(A,B);
Warning: A为空矩阵!
> In sumAB at 9
>> C

C =

     []

>> 

然后我们显示上面函数的执行过程.

>> echo on all
>> C = sumAB(A,B)
%此函数用来求矩阵A,B相加之和
%编写日期:2014-6-22
[m1,n1] = size(A);
[m2,n2] = size(B);
%若A,B中有一个为空矩阵或两者的维数不一致则返回空矩阵,并给出警告信息
if isempty(A)
    warning('A为空矩阵!');
Warning: A为空矩阵!
> In sumAB at 9
    C=[];
    return ;

C =

     []

>> 

4.warning命令

该命令用于在程序运行时给出必要的警告信息,其调用格式如下

调用格式                                                     说明 

warning('message')                            显示警告信息"message",其中message为文本信息

warning('message',a1,a2,....)            显示警告信息"message",其中message包含转义字符,且每转义字符的值将被转化为a1,a2,...的值

warning on                                             显示其后所有warning命令的警告信息

warning off                                             不显示其后所有warning命令的 警告信息

warning debug                                      当遇到一个警告时,启动调试程序


>> y = log_3(-1)
Warning: x的值不能为负数!
> In log_3 at 9

y =

     []

>> y = log_3(0)
Warning: x的值不能为0!
> In log_3 at 13

y =

     []

>> y = log_3(4)

y =

    1.2619

>> 
5.error命令
该命令用来显示错误信息,同时返回键盘控制.其调用格式如下:

调用格式                                                                  说明 

error('message')                                             终止程序并显示错误信息"message"

error("message",a1,a2,...)                            终止程序并显示错误信息"message",其中message包含转义字符,且每转义字符的值将被转化为a1,a2,....的值

这个命令的用法与warning命令的用法非常相似,只过它执行后将立即终止程序的运行.


在利用MATLAB编写程序时,我们可以通过交互的方式来协调程序的运行.常用的交互命令的有input命令,keyboard命令以及menu命令等.下面主要介绍它们的用法及作用.

6.input命令

该命令用来提示用户从键盘输入数值、字符串或表达式,并将相应的值赋给指定的变量。它的调用格式如下:

调用格式                                                    说明

s=input('message')                              在屏幕上显示提示信息“message",待用户输入信息后,将相应的值赋给变量s,若无输入则返回空矩阵

s=input('message','s')                         在屏幕上显示提示信息”message",并将用户的输入信息以字符串的形式赋给变量s,若无输入则返回空矩阵




>> sum_ab
请输入a
[4 5;3 4]
请输入b
[1 2;2 3]

ans =

     5     7
     5     7

>> 

7.keyboard命令

该命令是一个键盘调用命令,即当在一个M文件中或者命令窗口中运行该命令后,该文件将停止执行并将“控制权”交给键盘,产生一个以K开头的提示符(K>>)。用户可以通过键盘输入各种MATLAB的合法命令,只有当输入return命令时,程序才将“控制权”交给原M文件或者命令窗口。


>> sub_ab
K>> return

ans =

     1

>> sub_ab
K>> 

8.menu命令

该命令用来产生一个菜单供用户选择,它的使用格式为:

k=menu('mtitle','opt1','opt2',...,'optn')

产生一个标题为"mtitle“的菜单,菜单选项为"opt1"到”optn",若用户选择第i个选择“opti",则k的值取i.







  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值