原文:Matlab随笔之矩阵入门知识

直接输入法创建矩阵

矩阵的所有元素必须放在方括号“[ ]”内;

矩阵列元素之间必须用逗号“,”或空格隔开,每行必须用“;”隔开

矩阵元素可以是任何不含未定义变量的表达式。可以是实数,或者是复数。

例a=[1,2;3,4] 或 a=[2 1+3j;sqrt(4) 5]

创建基本矩阵的函数

空阵 [ ] — matlab允许输入空阵,当一项操作无结果时,返回空阵

ones(N,M) —全部元素都为1的矩阵

zeros(N,M) —全部元素都为0的矩阵

rand(N,M)— 在[0,1]均匀分布的随机矩阵

randn(N,M)— 在[0,1]正态分布的随机矩阵

eye(N)— 单位矩阵

n 在MATLAB系统中,仅有一行或一列的矩阵称为向量。

利用冒号“:”生成向量

a=m:n

a=m:step:n

利用函数linspace()生成向量

linspace(m,n)

linsapce(m,n,k)

注:linspace是Matlab中的均分计算指令,用于产生m,n之间的k点行线性的矢量。其中m、n、k分别为起始值、终止值、元素个数。若默认k,默认点数为100

n 在MATLAB中,矩阵下标的行、列号都是从1开始的。A(i,j)表示矩阵A的第i行第j列的元素。

>> b=A(1,1)+A(2,2)+A(3,3)

运行结果:b=15.000

n 向量x和y中的任何一个可以是冒号”:”,表示所有的行和列。

例,对上述矩阵A(:,[1,3])

ans=1 3

4 6

7 9

另外,MATLAB还可以将若干个小矩阵,通过方阵号连接算子,生成较大的矩阵。

MATLAB通过方括号连接算子可以直接将多个子矩阵合并起来构成较大的矩阵。

例:a=ones(1,3);

b=zeros(1,4);

c=[a,b]

结果:c=[1 1 1 0 0 0 0]

矩阵的基本信息

1、size:矩阵的大小

2、length:向量长度

3、ndims:数组维数

4、disp:显示数组或文字

5、isempty:检测是否空矩阵

6、isequal:检测矩阵是否相等

矩阵变换

1、fliplr:用于矩阵元素的左右对称翻转;

2、flipub:用于矩阵元素的上下对称翻转;

3、rot90:用于矩阵的逆时针90度旋转。

矩阵幂次及指数

假设有方阵A和正整数p,则A^p表示方阵A自乘p次;

假设有方阵A和正整数p,则A^(-p)表示方阵inv(A)自乘p次。

矩阵的除法

矩阵除分为矩阵右除和矩阵左除。

l 矩阵右除的运算符号为“/”,设A,B为两个矩阵,则“A/B”是指方程X*B=A的解矩阵X。矩阵A和B的列数必须是相等。

l 矩阵左除的运算符号为“\”,设A,B为两个矩阵,则“B\A”是指方程B*X=A的解矩阵X。矩阵A和B的行数必须是相等。

矩阵特征

l 矩阵的求逆: inv(A)

l 矩阵的特征值: eig(A)

l 方阵的行列式: det(A)

l 求特征多项式: poly(A)

MATLAB的基本关系运算符

>(大于) <(小于) ==(等于)

<=(小于等于) ~=(不等于)

关系运算的规则

参与关系运算的矩阵必须是同维矩阵或其中之一为标量。

当参与运算的矩阵是两同维矩阵A和B时,关系运算的结果时将矩阵A和B下标相同的对应元素逐一进行关系比较。

当参与运算的矩阵之一是标量,关系运算的结果是将矩阵的每一个元素与该标量逐一进行关系比较。

关系运算比算术运算具有更高的优先级

例:>>a=[1,2;2,3]

>>b=[2,2;2,2]

>>a>=b

ans=0 1

1 1

矩阵的逻辑运算

MATLAB的基本逻运算符为:

&(与) |(或) ~(非)

n 在逻辑运算中,”真“用代码”1”表示,”假”用代码”0”表示。逻辑运算的规则是:

参与逻辑运算的矩阵必须是同维矩阵或其中之一为标量

当参与逻辑运算是两同维矩阵A和B时,逻辑运算的结果是将矩阵A和B下标相同的对应元素逐一进行逻辑运算。

当参与逻辑运算之一是标量时,逻辑运算的结果是将矩阵的每一个元素与该标量进行逻辑运算。

n 例: >>a=[2,0;0,3];

>>b=[1,0;0,0];

>>a&b

ans=

1 0

0 0

多项式及其运算

l 多项式求根

函数roots()用于对多项式求根,调用格式为:

p=roots(A)

例如:>>b=[1 3 2]

>>roots(b)

ans=

-2

-1

l 由指定根求多项式

函数ploy用于由给定定根求多项式系数向量,调用格式为:

A=poly(p)

例:>>p=[2,1]

>>poly(p)

ans=

1 -3 2

l 多项式相乘

函数conv()用于求两个多项式的乘积多项式,其调用格式为:

R=conv(A,B)

例:>>A=[1 3 2];

>>B=[1 2 1];

>>R=conv(A,B)

R=

1 5 9 7 2

l 多项式相除

函数deconv()用于进行两个多项式的相除运算,其调用格式为

[B,t]=deconv(R,A)

例:>>R=[1 5 9 7 2];

>>A=[1 3 2]

>>[B,t]=deconv(R,A)

B=

1 2 1

t=

0 0 0 0 0

n 当MATLAB启动后,系统自动在内存中开辟一块存储区域用于用户在MATLAB命令窗口中定义的变量、运算结果和有关数据。此内存空间称为MATLAB的工作空间(workspace)。

清除变量命令clear

clear a b

Matlab随笔之矩阵入门知识的更多相关文章

  1. Matlab随笔之求解线性方程

    原文:Matlab随笔之求解线性方程 理论知识补充: %矩阵除分为矩阵右除和矩阵左除. %矩阵右除的运算符号为“/”,设A,B为两个矩阵,则“A/B”是指方程X*B=A的解矩阵X. %矩阵A和B的列数 ...

  2. Matlab随笔之画图函数总结

    原文:Matlab随笔之画图函数总结 MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATL ...

  3. Matlab随笔之线性规划

    原文:Matlab随笔之线性规划   LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为:min xs.t. ...

  4. Matlab随笔之指派问题的整数规划

    原文:Matlab随笔之指派问题的整数规划 注:除了指派问题外,一般的整数规划问题无法直接利用Matlab函数,必须Matlab编程实现分支定界法和割平面解法. 常用Lingo等专用软件求解整数规划问 ...

  5. Matlab随笔之插值与拟合(上)

    原文:Matlab随笔之插值与拟合(上) 1.拉格朗日插值 新建如下函数: function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注 ...

  6. Matlab随笔之插值与拟合(下)

    原文:Matlab随笔之插值与拟合(下) 1.二维插值之插值节点为网格节点 已知m x n个节点:(xi,yj,zij)(i=1…m,j=1…n),且xi,yi递增.求(x,y)处的插值z. Matl ...

  7. Web三维编程入门总结之一:WebGL与Threejs入门知识

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  8. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  9. MATLAB中求矩阵非零元的坐标

    MATLAB中求矩阵非零元的坐标: 方法1: index=find(a); [i,j]=ind2sub(size(a),index); disp([i,j]) 方法2: [i,j]=find(a> ...

随机推荐

  1. web中的重定向与转发

    Redirect:重定向(客户端重定向) 是HTTP协议规定的一种机制:当client向server发送一个请求,要求获取一个资源时,在server接收到这个请求后发现请求的这个资源实际存放在另一个位 ...

  2. Wampserver 2.5 多网站配置方法

    写在开头:本文适用于wampserver2.5版本号,和wamp的老版本号配置有语法上的差别,笔者正是由于被老版本号的配置办法给整迷糊了所以才总结了一篇针对2.5版本号的配置方法,假设您还停留在1.x ...

  3. jquery ajax实现省市二级联动

    今天给大家带来使用jQuery ajax实现的省市联动效果.我们直奔主题,先说下实现思路: 准备数据 这里数据库我使用的是mysql,先看下表格: provience表 city表 这里使用provi ...

  4. js,jquery遍历数组,对象

    each的用法  1.数组中的each 复制代码 var arr = [ "one", "two", "three", "four ...

  5. Linux基本命令(二)

    1. 输出重定向命令:> Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中. 如:ls > test.txt ( test.txt 如果不存在,则创建, ...

  6. 文件上传api——MultipartFile

    MultipartFile 方法总结  byte[] getBytes() 返回文件的内容作为一个字节数组.  String getContentType() 返回文件的内容类型.  InputStr ...

  7. CSS自己主动换行、强制不换行、强制断行、超出显示省略号

    P标签是默认是自己主动换行的,因此设置好宽度之后,可以较好的实现效果,可是近期的项目中发现,使用ajax载入数据之后.p标签内的内容没有换行,导致布局错乱,于是尝试着使用换行样式,尽管攻克了问题.可是 ...

  8. Android 开发者工具

    30多个Android 开发者工具 文中部分工具是收费的,但是绝大多数都是免费的. FlowUp 这是一个帮助你跟踪app整体性能的工具,深入分析关键的性能数据如FPS, 内存, CPU, 磁盘, 等 ...

  9. [转]erlang ranch

    一. ranch app启动: ranch_sup -> ranch_server % 创建ets, 并提供接口给其他进程读写 二. 启动diy app (监听模块: 用ranch_tcp -& ...

  10. 51nod1673 树有几多愁 - 贪心策略 + 虚树 + 状压dp

    传送门 题目大意: 给一颗重新编号,叶子节点的值定义为他到根节点编号的最小值,求所有叶子节点值的乘积的最大值. 题目分析: 为什么我觉得这道题最难的是贪心啊..首先要想到 在一条链上,深度大的编号要小 ...