matlab-note-3

matlab-note-3

Charles Lv7

matlab-note-3

image-20230208173110863

MATLAB程序流程控制

顺序结构程序

  • 脚本文件是可以在命令行直接执行的文件,也叫命令文件。
  • 函数文件是定义一个函数,不能直接执行,而必须以函数调用的方式来调用它。

文件的建立

1.用命令按钮创建文件(GUI)

2.用edit命令创建文件(CLI)

1
edit test

数据的输入

A=input(提示信息,选项);

1
A = input('请输入变量A的值:');

数据的输出

disp(输出项);

1
2
3
4
s = 'Hello,World';
disp(s)
a = [1, 2, 3; 4, 5, 6];
disp(a)

程序的暂停

pause(延迟秒数),如果无参数则为按任意键继续。

若要强行终止程序可使用Ctrl+C命令。

用if语句实现选择结构

  • 当条件结果为标量时,非零表示条件成立,零表示条件不成立。
  • 当条件结果为矩阵时,如果矩阵为非空,且不包含零元素,则条件成立,否则不成立。
1
2
3
4
5
6
7
8
9
10
11
x = input('请输入x的值:');

if rem(x, 3) == 1
y = sqrt(x);
elseif rem(x, 3) == 2
y = x + 1;
else
y = x ^ (1/3);
end

y

用switch语句实现选择结构

1
2
3
4
5
6
7
8
9
10
11
12
x = input('请输入x的值:');

switch x
case 1
disp(111);
case 2
disp(222);
case {3, 4, 5}
disp(333);
otherwise
disp(444);
end

用for语句实现循环结构

for 循环变量=初值:步长:终值
循环体语句
end

1
2
3
4
5
6
7
for k = [1, 3, 2, 5]
k
end

for k = 1:2:10
k
end

用while语句实现循环结构

while 条件
循环体语句
end

1
2
3
4
5
6
7
8
9
10
11
12
x = 100;

while x <= 200

if rem(x, 21) ~= 0
x = x + 1;
continue
end

x
break
end

函数文件的定义与调用

函数文件的基本结构

function 输出形参表=函数名(输入形参表)
注释说明部分
函数体部分

函数文件名通常由函数名再加上扩展名.m组成,函数文件名与函数名也可以不相同。return语句表示结束函数的执行。

1
2
3
4
function [s, p] = fcircle(r)
% Syntax: [s,p] = fcircle(r)
s = pi * r * r;
p = 2 * pi * r;

函数调用

调用格式:[输出实参表]=函数名(输入实参表)

在调用函数时幂函数输入输出参数称为实际参数,简称实参。

1
[s,p] = fcircle(10)

匿名函数

基本格式:

函数句柄变量=@(匿名函数输入参数)匿名函数表达式

函数句柄变量=@函数名

1
2
3
f = @(x, y) x ^ 2 + y ^ 2

f(3, 4)
1
2
3
h = @sin

h(pi / 2)

函数的递归调用

1
2
3
4
5
6
7
function f = fact(n)

if n <= 1
f = 1;
else
f = fact(n - 1) * n;
end

函数参数与变量的作用域

函数参数的可调性

nargin ==>输入实参的个数

nargout ==>输出实参的个数

1
2
3
4
5
6
7
8
9
function fout = test(a, b, c)

if nargin == 1
fout = a;
elseif nargin == 2
fout = a + b;
else
fout = (a * b * c) / 2;
end

变量的作用域

局部变量

局部变量是指在程序中只在特定过程或函数中可以访问的变量。

在MATLAB中函数文件中的变量是局部变量

全局变量

全局变量的作用域是整个MATLAB工作空间,也就是全程有效,所有的函数都可以对它进行存取和修改。

全局变量定义格式:global 变量名

1
2
3
4
5
6
7
8
%wad.m
function f = wad(x, y)
global ALPHA BETA
f = ALPHA * x + BETA * y;
%cmd
global ALPHA BETA
ALPHA = 1;
BETA = 2;
  • Title: matlab-note-3
  • Author: Charles
  • Created at : 2023-02-03 21:29:45
  • Updated at : 2023-08-17 09:48:10
  • Link: https://charles2530.github.io/2023/02/03/matlab-note-3/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments