matlib笔记二(上个笔记接上)

% 查

%{

matrix(3,2) 矩阵第三行第二列元素

matrix(2,[1,3]) 矩阵第二行第一、三列元素

matrix([1,3],2) 矩阵第一、三行第二列

matrix(1,:) 矩阵第一行的所有列

matrix(:,2) 矩阵第二列的所有行

matrix(:,end) 矩阵最后一列的所有行

matrix(end,:) 矩阵最后一行的所有列

%}

%单个指标访问:按列从第一列到最后一列的所有行第一行到最后一行

%如矩阵是4*4的矩阵时(第二行第一列表示5)<==> matrix(2,1)相当于matrix(5)

%[i,j] = ind2sub(siz, ind) siz矩阵的大小 ind矩阵单个指标的位置

%返回第i行第j列

% 改

% 增加时缺少的用0补充

%{

matrix(2,3) = 9 修改第二行第三列

matrix(1,:) = [1,2,3] 修改第一行的所有列

matrix(1:2,1:2) = nan 修改第一、二行第一、二列 matrix(1:2,1:2) = 5

matrix(1:2,1:2) = [1,2;3,4]

matrix(:,1) = [1;2;3] 修改第一列的所有行

matrix(:,4) = [1;2;3]

%}

%并

%{

mat = []

mat1 = randi([1,10],3,3)

[mat1,matrix] 按行并在一起行要维度相同

[mat1;matrix] 按列并在一起列要维度相同

[mat,mat1]

[mat;mat1]

%}

%矩阵的函数

%{

length(matrix) return行和列的最大值

[rows,columns] = size(matrix)

mat2 = size(matrix) mat2(1) mat2(2)返回行数和列数

numel(matrix) elements sum

reshape(matrix,2,8) 返回改变行列数

flipud(matrix) flip(matrix) 返回行数从下到上交换

fliplr(matrix) 返回列数从右到左交换

rot90(matrix) 矩阵逆时针旋转90

A = [1,2;3,4]; repmat(A,2,3); 矩阵重复2行3列

repelem(A,2,3) 矩阵的元素重复2行3列

diff([1,4,7,8,3]) 第二位减去第一位 [3 3 1 -5]

nan(3,0) 空的 3×0 double 矩阵

nan(0,3) 空的 0×3 double 矩阵

%}

%矩阵的运算

%{

[1,4,7,8,3] * 3 各个元素乘以3

[1,4,7,8,3] + 3 各个元素加3

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

A.*B 每个对应的元素相乘 A.^B 每个对应的元素给予乘方

A+B 每个对应的元素相加 A-B 每个对应的元素相减

A./B 每个对应的元素相除

%}

%三维数组

%{

m = randi([1,100],3,4)

T(:,:,1) = m

T(:,:,2) = randi([1,100],3,4)

T(:,:,3) = randi([1,100],3,4)

T(:,:,4) = randi([1,100],3,4)

T(:,:,5) = randi([1,100],3,4)

%}

%几个运算函数

%{

m1 = randi([-5,5],[1,4]) 随机整数 m1 = -1 -5 3 -4

abs(m1) ans = 1 5 3 4 (没有返回结果时一般为ans当作返回结果)

sign(m1) ans = -1 -1 1 -1

min(m1) ans = -5

max(m1) ans = 3

sum(m1) ans = -7 vector的每一位相加

prod(m1) ans = -60 vector的每一位相乘

cumsum(m1) ans = -1 -6 -3 -7 详细解释 第一个数不变

第二位数 -1 + -5 = -6 第三位数 -1 + -5 + 3 = -3

第四位数 -1 + -5 + 3 + -4 = -7

cumprod(m1) ans = -1 5 15 -60 详细解释 第一个数不变

第二位数 -1 * -5 = 5 第三位数 -1 * -5 * 3 = 15

第四位数 -1 * -5 * 3 * -4 = -60

cummin(m1) ans = -1 -5 -5 -5 详细解释 第一个数不变

第二位数 -1 > -5 第三位数 3 > -1 > -5

第四位数 3 > -1 > -4 > -5

cummax(m1) ans = -1 -1 3 3 详细解释 第一个数不变

第二位数 -1 > -5 第三位数 3 > -1 > -5

第四位数 3 > -1 > -4 > -5

%}

%{

matrix = randi([-5,5],3,4)

min(matrix) 返回找到一道四行每一列的最小值

max(matrix) 返回找到一道四行每一列的最大值

matrix63 > 0 返回 3×4 logical 数组大于true为1,小于false为0

matrix([matrix > 0]) 返回为1的数

any() 有一个为true就是true

any(matrix > 0) 返回找到一道四行每一列有一个为true则true

all() 全部为true就是true

all(matrix1 > 0) 返回找到一道四行每一列有一个为true则true

find() 返回逻辑true的位置

find(matrix1 > 0) 返回(单个指标访问)位置

find(matrix1 > 0,2,'first') 从第一个开始返回两个true的数

find(matrix1 > 0,2,'last') 从最后一个开始返回两个true的数

%}

% log_true = ones(3,4,'logical') 3×4 logical 数组 注意这个类型

% v1 = [1,2,3,4] v2 = [1,2,3,4]

%all(v1 == v2)

% isequal(v1,v2) isequal(1,1) 判断是否相同(判断向量或矩阵时维度是一定相同)

%矩阵运算(线代知识)

%{

m1 = randi([1,10],3,4)

m2 = randi([1,10],4,3)

m1*m2 第一个矩阵的列数和第二个矩阵的行数相等

det([1,2;3,4]) 计算行列式必须是方针

rank(m1) 矩阵的秩

eig([1,2;3,4]) 矩阵的特征值 必须是方阵

inv([1,2;3,4]) 矩阵的逆 必须是方阵

transpose(m1) 转置

v1 = randi([1,9],[1,3])

v2 = randi([1,9],[1,3])

v1 * v2' 计算内积

cross(v1, v2) 计算叉积

A1 = randi([1,10],4,4)

A2 = randi([1,10],4,4)

A1\A2  inv(A1)*A2   A1/A2   A1*inv(A2)

%}

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值