MATLAB —— 向量,矩阵,数组
目录
MATLAB —— 向量,矩阵,数组
一、向量
1、向量定义
2、引用向量元素
3、向量运算
二、矩阵
1、矩阵定义
2、引用矩阵
3、矩阵运算
三、数组
一、向量
1、向量定义
向量是数字的一维数组。有两种类型,一种是行向量(逗号或空格分隔),一种是列向量(分号分隔)。
行向量:a = [1, 2, 3, 4, 5, 6]; a = [1:100]; %1-100的数据 a = [1:5:100]; %从1-100以5位间隔
列向量:a = [1; 2; 3; 4; 5; 6];
2、引用向量元素
使用索引来引用,i从1到length。如a(5) = 5;
使用:来引用,a(:) % 列出向量所有元素 a(1:3) %引用前3个元素
3、向量运算
加减:各元素的加减;
标量乘: a = [1, 2, 3, 4, 5]; b = 3 * a; disp(b);
转置:行列互换 a = [1, 2, 3, 4, 5]; b = a'; disp(b);
点积:a = [1, 2, 3, 4, 5]; b = [1, 2, 3, 4, 5]; c = dot(a, b); disp(c);
二、矩阵
1、矩阵定义
矩阵是数字的二维数组。
a = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % 3行3列 可以是m行n列
2、引用矩阵
mx(m, n) % 第m行第n列元素
b = a(:, 2); % 矩阵a的第二列所有数据
b = a(:, 2 : 3); % 矩阵a的2到3的所有数据
a(1, :) = []; % 删除第一行
a(:, 1) = []; % 删除第一列
3、矩阵运算
加减:各元素相加减
除法:/ \ 左除法或者右除法
标量运算:加减乘除(各元素的加减乘除)
转置: b = a'; % '转置运算符
连接: 水平连接 a = [1, 2, 3; 1, 2, 3]; b = [4, 5, 6; 4, 5, 6]; c = [a, b];
垂直连接 a = [1, 2, 3; 1, 2, 3]; b = [4, 5, 6; 4, 5, 6]; c = [a; b];
乘法:第一矩阵中的行与第二矩阵中的列相乘。
行列式:det(a)
逆转:inv(a)
三、数组
zeros()创建全0数组,ones()创建全1数组,eye()创建单位矩阵, rand()创建0-1上的随机数数组, magic()魔术方阵。
多维数组可以看成n个二维数组。
函数 | 说明 |
length | 向量的大小或数组的长度 |
ndims | 数组的维数 |
numel | 数组的元素数量 |
size | 数组的长度 |
iscolumn | 确定输入是否为列向量 |
isempty | 确定数组是否为空 |
ismatrix | 确定输入是否为矩阵 |
isrow | 确定输入是否为行向量 |
isscalar | 确定输入是否为标量 |
isvector | 确定输入是否为向量 |
blkdiag | 从输入参数构造块对角矩阵 |
circshift | 循环移位 |
ctranspose | 复共轭转置 |
diag | 矩阵对角矩阵和对角线 |
flipdim | 沿着指定的尺寸翻转数组 |
fliplr | 从左到右翻转矩阵 |
flipud | 向下翻转矩阵 |
ipermute | 反转N-D阵列的置换维度 |
permute | 重新排列N-D数组的维度 |
repmat | 复制和平铺数组 |
reshape | 重塑数组 |
rot90 | 旋转矩阵90度 |
shiftdim | 移动维度 |
issorted | 确定设置元素是否按排序顺序 |
sort | 按升序或降序排列数组元素 |
sortrows | 按升序排列行 |
squeeze | 删除单例维度 |
transpose | 转置 |
vectorize | 向量化表达式 |