MATLAB学习笔记(一) 基础输入

1.赋值

1.1基础

matlab中,可以用类似于python中的方法赋值,不需要宣告,如:

1
A=1010赋值给A

Note:赋值时,代数区分大小写;变量只能以字母开头,不能以数字开头(如2A)

1.2数据类型

默认是双精度(double)

命令:who(输出已有变量) 和 whos(输出已有变量及数据类型)

1.3MATLAB关键字

1
2
3
4
5
6
ans
i,j: complex number
Inf: ∞
eps: 2.2204e-016 极小数
NaN: not a number
pi: π

To list keywords:

1
iskeyword

一般不允许关键词被赋值,不要将keyword赋值成变量

不当赋值举例:

1
2
cos='This string.';
cos(8)

输出的是“This string”的第八个字符(计入空格)

clear cos 可以清除cos这个var

MATLAB变量优先级如下: Calling priority

1.4更改显示格式 format

1
2
3
4
5
pi
3.1416

format long
3.141592653589793

1.5一些小命令

1
2
3
4
5
6
; 命令的结果后面加分号,不显示运算结果
↑:展示上一条命令,同理↓
clc: 清空命令窗口
clear: 清空workspace(工作区)
who: variables in the workspace
whos: variable information of the workspace

2.Array:输入矩阵matrix或向量vector

2.1向量输入

横向量row:

1
a = [1 2 3 4]

列向量column:

1
b = [1; 2; 3; 4]
1
试试看a*bb*a

2.2矩阵输入 semicolon 分号

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

index 索引出矩阵或向量中特定位置的数:变量+括号,A(5)

列为主向量

方法一: A(row, column) 即指定行数、列数,如A(3,2),输出8

方法二:列为主向量:A(8),从上到下,从左到右数第八个数

1
2
3
4
5
A(8)
A([1 3 5])
A([1 3; 1 4]) 第一行为第13个数,第二行为第14个数
A(3,2) 第三行第二个数
A([1 3], [1 3]) 取交集,前为row,后为column,一三行与一三列的交集

可以用上面的方法给已生成的矩阵中的元素赋值(替换数值)

妙用交集:

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

也可以:

1
2
A(3,:)  表示第三行
A(3,:) = [] 将第三行删去

同理,可以用此法增删列!

2.3Colon Operator

1
2
a = [1:100]   输入a为1-100的行向量,其实就是差距为1
a = [1:2:99] 输入1-99之间的奇数,第一个数为一,间隔为2的等差数列

语法如下:

1
2
j:k → [j, j+1, j+2,..., j+m]
j:i:k → [j, j+i, j+2i, ..., j+m*i]

也可以混用:

1
B = [1:5; 2:3:15; -2:0.5:0]

也可以输出有规律的字符串:

1
a = 'a':2:'z'

2.4矩阵增减

1
2
3
4
A=[1 2; 3 4]
B=[9 9; 9 9]
F=[A B] 横向相加
F=[A;B] 纵向相接

2.5矩阵运算

注:点乘 . 对应位置相乘; '为转置

1
2
. 点乘
' 转置

2.6特殊矩阵

1
2
3
4
5
6
linspace(): linear spaced vectors
eye(n): n*n identity matrix 单位矩阵
zeros(n1,n2): n1*n2 zero matrix
ones(n1,n2): n1*n2 matrix with every entry as 1
diag(): diagonal matrix 对角矩阵
rand(): uniformly distributed random numbers

linspace(1, 2, 6) →输出1-2之间的6个等间距矩阵(此处间距为0.2)

diag([2 3 4]) →输出对角线为2 3 4的对角矩阵

2.7Matrix Function

如: \[ \begin{equation} %开始数学环境 \left[ %左括号 \begin{array}{ccc} %该矩阵一共3列,每一列都居中放置 1 & 2 & 3\\ %第一行元素 4 & 5 & 6\\ %第二行元素 7 & 8 & 9\\ %第三行元素 \end{array} \right] %右括号 \end{equation} \]

1
2
3
4
5
6
7
8
9
10
max(A)  取每一列的最大值
sort(A) 将A中的每一列元素按大小排序
max(max((A)) 取所有元素的最大值
sortrows(A) 默认依据第一列的数值按升序移动每一行,如果第一列的数值有相同的,依次往右比较
min(A)
size(A) 输出矩阵的行数与列数
sum(A) 将每一列加总
length(A)
mean(A) 输出每一列的平均值
find(A) 如: find(A==5) 找到矩阵中的第几个位置为5,从上到下,从左到右


MATLAB学习笔记(一) 基础输入
https://yuzhang.net/2020/07/27/MATLAB学习笔记(一) 基础输入/
作者
Yu Zhang
发布于
2020年7月27日
许可协议