Matlab中矩阵函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
矩阵转置用符号“`”来表示和实现。
例如:A=[1 2 3;4 5 6 ;7 8 9 ];
B=A`↙
B=1 4 7
2 5 8
3 6 9
如故Z是复数矩阵,则Z`为它们的复数共轭转置矩阵,非共轭转置矩阵使用Z.`或conj(Z`)。
size(a)
[d1,d2,d3,..]=size(a) 求矩阵的大小,对m*n二维矩阵,第一个为行数m,第二个为列数n;
对多维矩阵,第N个为矩阵第N维的长度。
cat(k,a,b) 矩阵合并,运行a = magic(3)
b = pascal(3)
c = cat(4,a,b)
改4为3或2或1,自己体会合并后的效果。
k=1,合并后形如[a;b],行添加矩阵(要求a,b的列数相等才能合并);k=2,合并后形如[a,b],列添加矩阵(要求a,b的行数相等才能合并),以此类推,n维的矩阵合并,要求n-1维维数相等才可以)。
fliplr(a) 矩阵左右翻转
flipud(a) 矩阵上下翻转
rot90(a)
rot90(a,k) 矩阵逆时针旋转90度(把你的头顺时针旋转90看原数就可以知道结果了,^-^)
k参数定义为逆时针旋转90*k度。
flipdim(a,k) 矩阵对应维数数值翻转,如k=1时,行(上下)翻转,k=2时,列(左右)翻转。
tril(a)
tril(a,k) 矩阵的下三角部分(包括对角线元素),对应k=0时的取值数。
k参数设置为正负数值对应对角线向上或向下移动k行划分下三角元素。
triu(a)
tril(a,k) 矩阵的上三角部分(包括对角线元素),对应k=0时的取值数。
k参数设置为正负数值对应对角线向上或向下移动k行划分上三角元素。
diag(a)
diag(a,k) 生成对角矩阵或取出对角元素,对应k=0时的取值数。
k参数设置为正负数值对应对角线向上或向下移动k行取对角元素或生成对角矩阵。
repmat(a,m,n) 矩阵复制,把矩阵a作为一个单位计算,复制成m*n 的矩阵,其每一元素都含一个矩阵a,实际结果为一个size(a,1)*m
行,size(a,2)*n列的矩阵。
w=meshgrid(s,t)
[u,v]=meshgrid(s,t) 生成行m=size(t,1)*size(t,2),列n=size(s,1)*size(s,2))阶的两个矩阵。其中u为按行顺序取s的n个矩阵元数,按列排列重复m行,v为按列顺序取t的m个矩阵元数,按行排列重复n列。只生成一个矩阵时,w=u。
eye(a)
eye(a,k) 生成a阶单位方阵
k参数设置为生成a×k阶单位矩阵,即生成a阶单位方阵后,取前k 列,不足补0。
ones(a)
ones(a,k) 生成a阶全1方阵
k参数设置生成a×k阶全1矩阵。
zeros(a)
zeros(a,k) 生成a阶全0方阵
k参数设置生成a×k阶全0矩阵。
inv(a) 生成a的逆矩阵
eps—机器的浮点运算误差限。PC机上eps的默认值为2.2204*10^-16,若某个量的绝对值小于eps,则可以认为这个量为0。
i和j—若i或j量不被改写,则它们表示纯虚数量j。但在MA TLAB 程序编写过程中经常事先改写这两个变量的值,如在循环过程中常用这两个变量来表示循环变量,所以应该确认使用这两个变量时没被改写。如果想恢复该变量,则可以用语句i=sqrt(-1)设置,即对-1求平方根。
Inf—无穷大量+∞的MA TLAB表示,也可以写成inf。同样地,-∞可以表示为-Inf。在MA TLAB程序执行时,即使遇到了以0为除数的运算,也不会终止程序的运行,而只给出一个“除0”警告,并将结果赋成Inf,这样的定义方式符合IEEE的标准。从数值运算编程角度看,这样的实现形式明显优于C这样的非专业语言。
NaN—不定式(not a number),通常由0/0运算、Inf/Inf及其他可能的运算得出。NaN是一个很奇特的量,如NaN与Inf的乘积仍为NaN。pi—圆周率π的双精度浮点表示。
lasterr—存放最新一次的错误信息。此变量为字符串型,如果在本次执行过程中没出现这错误,则此变量为空字符串。
lastwarn—存放最新的警告信息。若未出现过警告,则此变量为空字符串。
保留的变量
ans—存放最近一次无赋值变量语句的运算结果。
end—最后一行(列)
nargin—函数输入变量的实际个数
nargout—函数返回变量的实际个数
保留字
%—后接注释
数据结构
一、数值型结构
MA TLAB语言中最常用的数值量为双精度浮点数,占8个字节(PS:与JA V A的double型相同)(64位),遵从IEEE记数法,有11个指数位、53位尾数及一个符号位,值域的近似范围为-1.7*10^308至1.7*10^308,其MA TLAB表示为double()。考虑到一些特殊的应用,MA TLAB语言还引入了无符号的8位整形数据类型,其MA TLAB表示为uint8(),其值域为0至255。此外,在MA TLAB中还可以使用其他的数据类型,如int8(),int16(),int32(),uint16(),uint32()等,每一个类型后面的数字表示其位数。
二、符号型结构
MA TLAB还定义了“符号”型变量,以区别于常规的数值型变量,可以用于公式推导和数学问题的解析解法。申明语句为syms var_list var_props 。穑与型数值可以通过变精度算法函数vpa()以任意指定的精度显示出来。
三、其他数据结构
1.字符串型数据MA TLAB支持字符串变量,可以用它来存储相关的信息。和C语言等程序设计语言不同,MA TLAB字符串是用单引号括起来的,而不是用双引号。
2.多维数组三维数组是一般矩阵的直接拓展。在直接编程中还可以