目录
MATLAB —— 向量,矩阵,数组
一、向量
1、向量定义
2、引用向量元素
3、向量运算
二、矩阵
1、矩阵定义
2、引用矩阵
3、矩阵运算
三、数组
向量是数字的一维数组。有两种类型,一种是行向量(逗号或空格分隔),一种是列向量(分号分隔)。
行向量: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];
使用索引来引用,i从1到length。如a(5) = 5;
使用:来引用,a(:) % 列出向量所有元素 a(1: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);
矩阵是数字的二维数组。
a = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % 3行3列 可以是m行n列
mx(m, n) % 第m行第n列元素
b = a(:, 2); % 矩阵a的第二列所有数据
b = a(:, 2 : 3); % 矩阵a的2到3的所有数据
a(1, :) = []; % 删除第一行
a(:, 1) = []; % 删除第一列
加减:各元素相加减
除法:/ \ 左除法或者右除法
标量运算:加减乘除(各元素的加减乘除)
转置: 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 |
向量化表达式 |