Post

Matlab 基础语法

命令行窗口中常用命令

命令用途
clc清空命令行窗口
clear从工作区中删除某一个/所有项目
clear all清空工作区
close all关闭所有的图窗
who列出工作区中的变量
whos列出工作区中的变量及大小和类型
help列出某个函数的帮助
tic/toc启动秒表计时器/读取时间
%注释
...换行符
Ctrl+C中止当前的运行

数组的创建和运算

简介

  • 变量类型有:数值类型、逻辑类型、字符串类型
  • 特殊变量和常数:ans, eps, inf, pi, NaN
  • 默认类型double,显示格式为short(小数点后4位)

创建

行向量

1
>> a = [1 2 3 4]

列向量

1
>> b = [1; 2; 3; 4]

矩阵

1
>> c = [1 2 3; 4 5 6; 7 8 9]

创建特殊矩阵

1
2
3
4
5
6
>>zeros(3) %建立一个3X3的全0矩阵%
>>ones(3,1) %建立一个3X1的全1矩阵%
>>eye(3) %返回一个主对角线元素为1且其他位置元素力0的3X3单位矩阵%
>>magic(3) %返回一个3×3的幻方矩阵%
>>rand(4,2) %返回一个4X2的随机数矩阵,矩阵中每一个元素都是在区间(0,1)内均匀分布的随机数%
>>randn(1,90) %返回由正态分布的随机数组成的1X90矩阵%

数组的索引

例如现有一个数组

\[A = \begin{bmatrix} 1 & 21 & 6 \\ 5 & 17 & 9 \\ 31 & 2 & 7 \end{bmatrix}\]

对其进行以下操作:

A(8)

1
>>A(8)
1
2
3
ans =

     9

A(3,2)

1
>>A(3, 2)
1
2
3
ans =

     2

A([1 3 5])

1
>>A([1 3 5])
1
2
3
ans =

     1    31    17

A([1 3], [1 3])

1
>>A([1 3], [1 3])
1
2
3
4
ans =

     1     6
    31     7

A([1 3; 1 3])

1
>>A([1 3; 1 3])
1
2
3
4
ans =

     1    31
     1    31

A(3, :)

1
>>A(3, :)
1
2
3
ans =

    31     2     7

常用的获取数组信息的函数

对上面数组进行以下操作:

max(A)

1
>>max(A)
1
2
3
ans =

    31    21     9

max(max(A))

1
>>max(max(A))
1
2
3
ans =

    31

min(A)

1
>>min(A)
1
2
3
ans =

     1     2     6

sum(A)

1
>>sum(A)
1
2
3
ans =

    37    40    22

mean(A)

1
>>mean(A)
1
2
3
ans =

   12.3333   13.3333    7.3333

sort(A)

1
>>sort(A)
1
2
3
4
5
ans =

     1     2     6
     5    17     7
    31    21     9

sortrows(A)

1
>>sortrows(A)
1
2
3
4
5
ans =

     1    21     6
     5    17     9
    31     2     7

size(A)

1
>>size(A)
1
2
3
ans =

     3     3

第一个参数为行数,第二个参数为列数

length(A)

1
>>length(A)
1
2
3
ans =

     3

显示A中行/列的最大值

find(A)

1
>>find(A)
1
2
3
4
5
6
7
8
9
10
11
ans =

     1
     2
     3
     4
     5
     6
     7
     8
     9

返回所有索引

ndims(A)

1
>>ndims(A)
1
2
3
ans =

     2

返回维度

numel(A)

1
>>numel(A)
1
2
3
ans =

     9

返回数组大小,作用相当于>>prod(size(A))

数组的算术运算

现有两个矩阵,且有\(a=2\)

\[A = \begin{bmatrix} 1 & 21 & 6 \\ 5 & 17 & 9 \\ 31 & 2 & 7 \end{bmatrix}\] \[B = \begin{bmatrix} 3 & 3 & 3 \\ 2 & 4 & 9 \\ 1 & 2 & 1 \end{bmatrix}\]

执行以下操作:

A+a

1
>>A+a
1
2
3
4
5
ans =

     3     4     5
     6     7     6
    11    10     9

A/a

1
>>A/a
1
2
3
4
5
ans =

    0.5000    1.0000    1.5000
    2.0000    2.5000    2.0000
    4.5000    4.0000    3.5000

A./a

1
>>A./a
1
2
3
4
5
ans =

    0.5000    1.0000    1.5000
    2.0000    2.5000    2.0000
    4.5000    4.0000    3.5000

A^a

1
>>A^a
1
2
3
4
5
ans =

    36    36    32
    60    65    60
   104   114   108

自乘a次

A+B

1
>>A+B
1
2
3
4
5
ans =

     4     5     6
     6     9    13
    10    11     8

A*B

1
>>A*B
1
2
3
4
5
ans =

    10    20    24
    26    44    61
    50    80   106

A.*B

1
>>A.*B
1
2
3
4
5
ans =

     3     6     9
     8    20    36
     9    24     7

A/B

1
>>A/B
1
2
3
4
5
ans =

    0.0714    0.2857    0.2143
    1.1667         0    0.5000
    3.2619   -0.2857   -0.2143

求解x*B=A的解

A'

1
>>A'
1
2
3
4
5
ans =

     1     4     9
     2     5     8
     3     4     7

数组的逻辑运算

符号功能描述
<小于
<=小于等于
>大于
>=大于等于
==等于
~=不等于
~逻辑非
&&逻辑与
||逻辑或

循环和向量化编程

条件判断

1
2
3
4
5
6
7
if condition1
	statement1
elseif condition2
	statement2
else 
	statement3
end

while循环

1
2
3
while expression
	statement
end

for 循环

1
2
3
for variable = start:increment:end
	commands
end

画图函数

命令用途
>>plot(x,y,'str')创建Y中数据对×中对应值的二维线图,并设置线性、标记符号、颜色
>>stem(x,y,'str')绘制离散序列数据,针状图
>>hold on/off添加新绘图时保留当前绘图,将多个图形画在同一个图窗上
>>figure创建一个新的图窗窗口,将多个图形画在不同的图窗上
>>legend()在坐标区上添加图例
>>title()添加标题
>>xlabel()/ylabel()为x/y坐标轴添加标签
xlim()/ylim设置x/y坐标轴范围
>>box on/off显示/隐藏坐标区轮廓
>>grid on/off显示/隐藏坐标区网格线
This post is licensed under CC BY 4.0 by the author.