原文: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. jquery-12 jquery的ajax如何使用

    jquery-12 jquery的ajax如何使用 一.总结 一句话总结:就是$.get()和$.post()方法的使用,看参考手册就好,与php的交互. 1.删除元素的时候如何设置删除特效? ani ...

  2. 阿里云OSS工具类

    [前言] 我们上家公司的存储系统用的是FastDFS(智能一代云平台(二十八):对前后端分离和FastDFS的使用的再理解):现在在职的公司用的是阿里云的OSS(OSS的官方文档),在工作的时候整理一 ...

  3. POJ - 2286 - The Rotation Game (IDA*)

    IDA*算法,即迭代加深的A*算法.实际上就是迭代加深+DFS+估价函数 题目传送:The Rotation Game AC代码: #include <map> #include < ...

  4. Javascript 获取页面高度(多种浏览器)

    //2015年8月13日11:00:50 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: d ...

  5. Linux基本命令(二)

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

  6. ArcEngine开发之Command控件使用篇

    转自原文 ArcEngine开发之Command控件使用篇 在ArcEngine类库中有大量的Command控件用来与地图控件进行操作和交互.比如有一系列的地图浏览控件.地图查询控件.图斑选取控件.编 ...

  7. [Ramda] Refactor to Point Free Functions with Ramda using compose and converge

    In this lesson we'll take some existing code and refactor it using some functions from the Ramda lib ...

  8. 剑指Offer面试题10(Java版):二进制中的1的个数

    题目:请实现一个函数,输入一个整数.输出该数二进制表示中1的个数. 比如把9表示成二进制是1001,有2位是1.因此假设输入9.该函数输出2. 1.可能引起死循环的解法 这是一道非常主要的考察二进制和 ...

  9. scala 加载与保存xml文档

    package scala_enhance.xml import scala.xml.XML import scala.io.Source import jdk.internal.org.xml.sa ...

  10. iOS 取消多余tableView的横线的写法

    - (void)setExtraCellLineHidden: (UITableView *)tableView{ UIView *view =[ [UIView alloc]init]; view. ...