0%

MATLAB程序结构

MATLAB语言有三种常用的程序控制结构:顺序结构、选择结构和循环结构。本文主要记录与这三种程序控制结构相关的部分内容作为笔记 (っ・Д・)っ 。

顺序结构

MATLAB语言的数据输入、数据处理和数据输出命令都是按照顺序结构执行的。

数据的输入

MATLAB语言可使用input函数从键盘输入数据,其调用方式如下:

方法一

x=input('提示信息')

提示信息表示字符串,用于提示用户应该输入什么数据,等待用户从键盘输入数据,赋值给变量x

>> x=input('输入变量:')
输入变量:3

x =

3

执行该语句时,命令行窗口显示输入变量:,然后等待用户从键盘输入x的值。

方法二

str=input('提示信息','s')

用于用户输入一个字符串,赋值给字符变量str

>> str=input('NAME:','s')
NAME:NIMITIZ

str =

'NIMITIZ'

数据的输出

MATLAB语言可以使用disp函数实现在命令行窗口显示输出信息,其调用方式如下:

disp('输出信息')

输出信息既可以是字符串,也可以是矩阵。

>> disp('NIMITIZ')
NIMITIZ
>> A=[1 2;3 4];
>> disp(A)
1 2
3 4

选择结构

MATLAB语言中的选择结构有三种常用语句:if语句、switch语句和try语句。

if语句

与C语言很类似,但是ifend必须配对使用end置于循环体的末尾。

if 条件
语句组
end
if 条件1
语句组1
else
语句组2
end
if 条件1
语句组1
elseif 条件2
语句组2
...
elseif 条件m
语句组m
else
语句组n
end

举个栗子

>> x=input('x:');
x3
>> if x>0
y=sqrt(x);
disp(['y=',num2str(y)]);
end
y=1.7321


>> x=input('x:');
x-3
>> if x>0
y=sqrt(x);
disp(['y=',num2str(y)]);
end
>>

switch语句

在MATLAB语言中,switch语句也用于多项选择。

switch 表达式
case 表达式1
语句组1
case 表达式2
语句组2
...
case 表达式m
语句组m
otherwise
语句组n
end

try语句

在MATLAB语言中,try语句是一种试探性执行语句,其格式为:

try
语句组1
catch
语句组2
end

try语句先试探执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋值给系统变量lasterr,并转去执行语句组2

举个栗子

try语句求解函数y=x*sin(x)的值,自变量x的取值范围[0,pi],步长为pi/10

>> x=0:pi/10:pi;
>> try
y=x*sin(x);
catch
y=x.*sin(x);
end
>> y

y =

0 0.0971 0.3693 0.7625 1.1951 1.5708 1.7927 1.7791 1.4773 0.8737 0.0000

>> lasterr

ans =

'错误使用 *
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。'

循环结构

MATLAB语言有两种循环结构语句:for循环语句和while循环语句。其使用方式都与C语言类似。

for循环语句

for 循环变量=表达式1:表达式2:表达式3
循环体语句
end
  • 表达式1的值为循环变量的初始值,表达式2的值为步长,表达式3的值为循环变量的终值;
  • 当步长为1时,可以省略表达式2
  • 当步长为负值时,初值大于终值;
  • 循环体内不能对循环变量重新设置;
  • for循环允许嵌套使用;
  • forend配套使用。

举个栗子

>> sum=0;
>> for k=1:100
sum=sum+k;
end
>> sum

sum =

5050

while循环语句

while 条件表达式
循环体语句
end

与C语言类似,没什么好记录的(~ ̄▽ ̄~)。

举个栗子

>> sum=0;
>> n=0;
>> while sum<800
n=n+1;
sum=sum+n;
end
>> n

n =

40

>> sum

sum =

820