logo

MATLAB 基础语法

王哲峰 / 2024-02-17


目录

MATLAB 是 “matrix laboratory” 的缩写形式。其他编程语言通常一次只能处理一个数字, 而 MATLAB 则针对整个矩阵和数组进行运算处理。语言基础只是包括基本运算, 例如创建变量、数组索引、算术运算和数据类型。

MATLAB 命令行工具

在 MATLAB 中工作时,可以发出创建变量和调用函数的命令。

# 用于查看 eig 函数的帮助文档,查询结果在命令行窗口显示
$ help eig
# 用于查看 eig 函数帮助文档,结果在单独的查看显示,比 help 显示更加完整详细
$ doc eig
# 模糊查找,比如知道某个可能的函数是 plo***,但是不知道完整的函数名称,就可以使用这个命令
$ lookfor eig
# 查找函数具体在什么位置
$ which eig

Matlab 数据类型

默认情况下,MATLAB 会将所有数值变量存储为双精度浮点值。 其他数据类型可在单变量中来存储文本、整数或单精度值, 或者相关数据的组合。

可以在 MATLAB 中使用许多不同的数据类型或类:

MATLAB 中有 17 个基础类。其中每个类都采用矩阵或数组的形式存在。 除了函数句柄之外,矩阵或数组的最小大小为 0×0,并且可以扩展到任意大小的 $n$ 维数组。 函数句柄始终为标量 (1x1)。

Matlab 变量

变量命名规则

Matlab 变量的命名与其他编程语言的规则相似:可以由字母、数字、下划线构成, 其中必须以字母或下划线开头,且变量名区分字母的大小写。

变量查询

>> a = 1;
>> b = 2;
>> c = pi;
>> who
您的变量为:

a  b  c 
>> whos
Name  Size  Bytes Class  Attributes

a     1x1   8            double
b     1x1   8            double
c     1x1   8            double

系统预定义变量

变量的存储

语法:

save 文件名 变量名列表  % 变量名列表中各变量之间用空格分隔
save(文件名, 变量名1, 变量名2)

示例:

% 将变量 p 与 q 存储到文件 file1.mat 里
save 'file1.mat' p q

% 或者
save('file1.mat', 'p', 'q')

变量的读取

从数据文件中提取指定变量:

load mydata A x

变量的清除

清除当前工作空间中的变量:

% 清除指定的变量
clear A x

% 清除所有工作空间中的变量
clear all

Matlab 矩阵和数组

矩阵的定义

A = [1, 2, 3; 4, 5, 6; 7, 8, 9];

% 或者
A = [1 2 3; 4 5 6; 7 8 9];

% 或者
A = [1 2 3;
     4 5 6;
     7 8 9];

% 或者
A = [1, 2, 3;
     4, 5, 6;
     7, 8, 9];

% 或者
A = [1, 2, 3
     4, 5, 6
     7, 8, 9];

矩阵赋值操作

矩阵 A 是一个 $1 \times 2$ 矩阵,第一个元素是 1,第二个元素 2

A(1) = 1;
A(2) = 2;

大矩阵可以把小矩阵作为其元素:

A = [A; 3 4];

矩阵元素提取引用操作

单个元素的引用

多个元素的引用

矩阵元素的引用:A(i:j, m:n) 表示由矩阵 A 的第 i 到第 j 行,和第 m 到第 n 列交叉线上的元素组成的子矩阵。 可以利用冒号 : 提取矩阵的整行或整列。

A(1, :)
A(:, 1:3)
A(:, :)

生成等差数列向量

a: b :c:产生一个由等差序列组成的向量

其中:

建立矩阵进阶

x = 1:12;
y = reshape(x, 3, 4)

z = 1:4
diag(z)

建立矩阵的函数

eye(size(A))      % 产生与 A 矩阵同阶的单位矩阵
zeros(m, n)       % 产生 0 矩阵
ones(m, n)        % 产生 1 矩阵
rand (m, n)       % 产生随机元素的矩阵
size(a)           % 返回包含两个元素的向量
length(a)         % 返回向量的长度

数组运算

  1. 数组的加、减、乘、除
  2. 数组的乘方

其他

  1. 行列式计算
det[1, 2; 3, 4];
  1. 求解线性方程组
x = A \ b
  1. 特征值问题
eig(A)

Matlab 运算符和基本运算

一般运算符

点乘、点除、点幂

x = [1 2 3];
y = [2 4 6];

% 输出 1*2 2*4 3*6
x.*y;

% 输出 2/1 4/2 6/3
y./x;

% 输出 1^3 2^3 3^3
x.^3; 

运算输出格式

Matlab 语句

语句形式

Matlab 语句的通常形式为:

变量 = 表达式;

分号和续行符的作用

a = 1  % a=1 会在命令行窗口输出
b = 1;  % 加了分号就不显示在命令行窗口
c = 123 + 456 + 789 + ...
    12345;  % 三个点换行

循环及条件语句

参考