1. 前言
停更有点久了,虽然前面的阅读量和点赞收藏量挺少的,但秉承着一幅蓝图绘到底的精神,争取把后面的笔记整理后发出来,与大家一起学习。
如果觉得有帮助,不妨分享给你的小伙伴,并给博主点个收藏、点个赞、再点个关注。
你的支持,是博主持续更新的最大动力。
目录
2.2 列向量 【n行1列矩阵】( column vector )
2.3 n行n列矩阵的输入 【基于上述行与列向量的输入规则得到的】
2.向量和矩阵的输入
2.1 行向量【1行n列矩阵】( row vector )
书写方法:中括号中的数字用 "空格或逗号" 隔开
格式:[ 1 2 3 4 ] 以此类推。
2.2 列向量 【n行1列矩阵】( column vector )
书写方法:中括号中的数字用 "分号" 隔开
格式:[1;2;3;4] 以此类推。
2.3 n行n列矩阵的输入 【基于上述行与列向量的输入规则得到的】
1) 同一个矩阵,所有的元素都在1个中括号中
2) 同一行的元素,中间用"空格"隔开。
3) 当需要换行时,在换行处输入"分号"
例: c=[1 2 3 4 ; 5 6 7 8; 9 1 0 2 ]
2.4 输入一个n项等差数列
公差为1的数列: arr = j : k 【j: 数列的第一个元素;k: 数列的最后一个元素】
公差为 i 的数列: arr = j ; i : k 【j: 数列的第一个元素;k: 数列的最后一个元素】
注意 i j k 中间是用 " 冒号 " 隔开;数列可以不用括号将等号后包起来。
2.5 输入特殊的矩阵
1) 单位矩阵(简称: E 或 I) 【特征: 对角线上元素等于1,其他位置等于0】
eye(n) n: 该单位矩阵的阶数
2) 零矩阵 【矩阵中所有元素的值都等于0】
zeros(行数, 列数)
3) 所有元素为1的矩阵
ones(行数, 列数)
4) 对角线矩阵 【特征:除了对角线上的元素可以不为0外,其他位置元素都等于0】
diag( [ 对角线上的文字 ] )
5) 随机生成一个元素为0~1的方阵
rand( n ) n :方阵的大小【整数】
2.6 输入字符型矩阵
1)例子:
C=["Tim" "Chris"]; % 输入一个1* 2的 字符串数组
D=["Tim" ;"Chris"]; % 输入一个2* 1的 字符串数组
2)注意:输入字符型数组(向量/矩阵)时,要注意使用的是中括号、双引号,不是单引号;其他规则同输入数字的矩阵
2.7 元胞数组
这部分内容较多,后续单独写成一篇文章。
先简单地记住,用大括号{}框起来的是元胞数组;中括号框起来的普通的数组。
2.8 多维矩阵
1) 何为n维矩阵
一维矩阵是行向量,即:一行n列
二维矩阵则需要行(row)坐标和列(column)坐标来确定一个位置。
三维矩阵是需要三个数字来确定一个位置【行(row) 列(column) 层(layer)】
2)三维矩阵(三维元胞数组)的表达:
方法1:
A{row, column,layer} = data 【此式子为输入元胞数组;如果是数组,就把大括号改为小括号】
示例代码:
A{1,1,1} = [1 2;4 5];
A{1,2,1} = 'Name';
A{2,1,1} = 2-4i;
A{2,1,1} = 7;
A{1,1,2} = 'Name2';
A{1,2,2} = 3;
A{2,1,2} = 0:1:3;
A{2,2,2} = [4 5]';
方法2:
先把三维数组中的每一层作为一个二维数组单独输入,再使用cat函数,把多个二维数组组合。
补充:cat函数的语法
cat(dim,B,C) ( B、C为两个二维数组)
dim=1时,每个数组按列组合
dim=2时,每个数组按行组合
dim=3时,每个数组为一个层次(从前往后数)
示例代码
B_cat=[1 2;3 4];
C_cat=[5 6;7 8];
D1=cat(1,B,C); % dim=1
D2=cat(2,B,C); % dim=2
D3=cat(3,B,C); % dim=3
% 使用方法2输入方法1中的示例代码:
A{1,1} = [1 2;4 5];
A{1,2} = 'Name';
A{2,1} = 2-4i;
A{2,2} = 7;
B{1,1} = 'Name2';
B{1,2} = 3;
B{2,1} = 0:1:3;
B{2,2} = [4 5]';
C = cat(3, A, B);
3. 矩阵的输出及修改
3.1 输出n行n列矩阵的某一个元素 【注意是小括号】
方法 1) 变量名 (row,column)
a. 在小括号中输入想要输出元素的行坐标和列坐标
b. 例
方法 2) 变量名 (number)
a. 在小括号中输入元素在矩阵中,从左到右, 一列一列数(先从上往下,再从左往右数),这个数为计算结果.
示例代码:
c=[1 2 3 4 ; 5 6 7 8; 9 1 0 2 ]
c1 = c(2,3) % 结果为7
c2 = c(10) % 结果为4
3.2 输出行向量或列向量中的某一个元素
方法: 变量名 (number) 在小括号中输入第n个元素的n.
3.3 把n行n列矩阵变成另一个矩阵
1) 以输出n行n列矩阵的某一个元素;n行n列矩阵的输入 的方法为基础
2) 格式
a.方法: 变量名( [ row ] [ column ] )
输出的矩阵的元素为,在原矩阵中,
输入的行、列数对应的行与列的相交的元素所组成的矩阵
例:c([1 3], [1 3])
b. 方法 :变量名( [ ] )
输入的数字按照上述方法输入对应元素代表的数字,
然后,同行用空格或逗号隔开,换行出用分号隔开。
例:例 (以127行为例): c ( [1 7; 3 9] )
3.4 修改n行n列矩阵中的某个元素
1)利用 " 输出n行n列矩阵的某一个元素 "的方法定位要修改的元素位置,后面加上 "=要修改成的值"
例: c(1,2)=100 c(5)=100
2)特殊情况: 同1行代码中,同时修改矩阵中的多个元素
利用"把n行n列矩阵变成另一个矩阵" 的方法定位多个要修改的元素的位置,后加上" = [ 要修改的值 ] "
a. 如果值相同,可以写成 A([4 6])=0 这样的形式。
b. 如果值不相同,
aa. 在同一列 (行) 时, 在等号后面的中括号中,输入的值,直接用空格或逗号隔开。
ab. 不在同一列 (行) 时,在等号后面的中括号中,输入的值,根据修改位置所构成的矩阵的样子,在换行处添加分号。
3.5 删除矩阵中的某行
1) 首先知道,如何表示矩阵的某行某列。
a. A ( : , j) 是A的第 j 列
b. A ( i , : ) 是A的第 i 行
注意冒号和行数或列数的位置。
2) 通过将要删除的行或列用 " =[ ] " 将其赋空值,即可将它删掉。
例:删除矩阵的第三行 A(3,:) = []
3.6 合并多个矩阵
【矩阵必须满足"线性代数"课程中的要求,才可合并】
已知矩阵:a 和 b ;合并成 c
1) 两个矩阵 "横" 着拼接: 输入 c = [a , b] OR c=[a b]
2) 两个矩阵 "竖" 着拼接: 输入 c = [a ; b]
4. 矩阵的运算
4.1 常用运算符号及使用方法
1) 加(+) 减(-) 乘(*) 除(/) 点乘( .* ) 点除( ./ ) 转置( ' )
tips: 运算符中有 " . " , 就是对应位置的元素进行运算。
2) 例: a=[1 2 3; 4 5 6 ; 7 8 9] b=[3 3 3 ; 3 3 3; 3 3 3]
点乘:a.*b 点除: a./b 转置: a' 乘:a*b
4.2 常见运算的运算规则
1) 矩阵的加减:两个矩阵对应位置的元素进行加减。【两个矩阵必须是同型的】
2) 矩阵的乘法:矩阵1的a行与矩阵2的b列中,对应位置相乘,然后相加,得到的结果为答案矩阵的a行b列位置。(矩阵的相乘,计算方法遵循"线性代数"课程中的内容。)
3) 矩阵的除法:设矩阵a b,a/b = a*b^-1 【逆矩阵的知识】
4) 矩阵的点乘和点除: 两个矩阵中,相同位置处的元素相乘(除),得到的结果为答案矩阵的相同位置的结果。【矩阵的点乘和点除与矩阵的加减类似】
5) 矩阵的转置:矩阵A的转置:A'
6) 矩阵与数字相加减: 就是数字与矩阵的每个元素都进行加减。【乘除注意区分, 见'8)'】
7) a.^b : 两个矩阵对应位置进行a^b
8) 【注意区分】
设A为矩阵,a=2,
x4=A^a 结果为:A^2=A*A 所以,此式子的意思是a个A矩阵相乘。
x5=A.^a 结果为:矩阵A中的每个元素取a的n次方
4.3 与矩阵相关的函数
设矩阵A
1) max(A) 输出 矩阵A中每列的最大值【n列的矩阵有n个最大值】
2) max( max ( A ) ) 输出 矩阵A中所有元素的最大值
3) min(A) 输出 矩阵A中每列的最小值
4) sum(A) 输出 矩阵A中每列的所有元素之和
5) mean(A) 输出 矩阵A中每列的所有元素的平均值
6) sort(A) 对矩阵A中每列元素,由上到下进行元素从小到大的排序
7) sortrows(A) 对矩阵A进行行与行的调整,以第一列元素从小到大进行排序。小的在 上,大的在下
8) size(A) 输出矩阵的行数、列数 【第一个是行数,第二个数是列数】
9) length(A) 输出矩阵的行数与列数的最大值
10) find(A==n) 输出矩阵中该数字的位置【计算方法: 从左往右,从上到下一列一列数】