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
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.
更多推荐
所有评论(0)