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随笔之矩阵入门知识的更多相关文章
- Matlab随笔之求解线性方程
原文:Matlab随笔之求解线性方程 理论知识补充: %矩阵除分为矩阵右除和矩阵左除. %矩阵右除的运算符号为“/”,设A,B为两个矩阵,则“A/B”是指方程X*B=A的解矩阵X. %矩阵A和B的列数 ...
- Matlab随笔之画图函数总结
原文:Matlab随笔之画图函数总结 MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATL ...
- Matlab随笔之线性规划
原文:Matlab随笔之线性规划 LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为:min xs.t. ...
- Matlab随笔之指派问题的整数规划
原文:Matlab随笔之指派问题的整数规划 注:除了指派问题外,一般的整数规划问题无法直接利用Matlab函数,必须Matlab编程实现分支定界法和割平面解法. 常用Lingo等专用软件求解整数规划问 ...
- Matlab随笔之插值与拟合(上)
原文:Matlab随笔之插值与拟合(上) 1.拉格朗日插值 新建如下函数: function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注 ...
- Matlab随笔之插值与拟合(下)
原文:Matlab随笔之插值与拟合(下) 1.二维插值之插值节点为网格节点 已知m x n个节点:(xi,yj,zij)(i=1…m,j=1…n),且xi,yi递增.求(x,y)处的插值z. Matl ...
- Web三维编程入门总结之一:WebGL与Threejs入门知识
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
- [置顶] Mysql存储过程入门知识
Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...
- MATLAB中求矩阵非零元的坐标
MATLAB中求矩阵非零元的坐标: 方法1: index=find(a); [i,j]=ind2sub(size(a),index); disp([i,j]) 方法2: [i,j]=find(a> ...
随机推荐
- Intellij IDEA中使用Debug
Intellij IDEA中使用Debug Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用 ...
- MySQL误删数据救命指南
预防误操作导致文件/数据丢失的建议: 1.欲删除文件时,将rm命令改成mv,可在系统层面将rm命令做个alias(或参考Windows / Mac OSX做法,删除文件时先进回收站).2.删除数据库. ...
- php 复制粘贴覆盖文件
<?php /** * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::cre ...
- AE创建拓扑
转自原文 AE创建拓扑 /// <summary> /// 创建拓朴 /// </summary> /// <param name="featureWorksp ...
- [tmux] Handle history in tmux sessions
In this lesson, we'll look at how to manage your history between tmux sessions, and ensure that your ...
- 曼德勃罗(Mandelbrot)集合与其编程实现
一.从科赫雪花谈起 设想一个边长为1的等边三角形(例如以下图所看到的).取每边中间的三分之中的一个,接上去一个形状全然类似的但边长为其三分之中的一个的三角形,结果是一个六角形.如今取六角形的每个边做相 ...
- php课程 4-16 数组自定义函数(php数组->桶)
php课程 4-16 数组自定义函数(php数组->桶) 一.总结 一句话总结:php的数组储存机制,和桶排序完美的结合.所以php的操作中多想多桶的操作. 二.数组自定义函数 1.相关知识 ...
- mui列表跳转到详情页优化方案
原理 因为列表页到详情页是多对一的形式,即列表页的多条数据列表对应的是一个详情页,只是数据不同而:因此,可以在加载列表页时预加载详情页,即创建一个详情页的webview,但是不显示出来,点击列表的时候 ...
- erlang局域网内节点通信——艰难四步曲
http://blog.chinaunix.net/uid-22566367-id-382011.html 在Programming Erlang这本书中,在写到第十章中,主要实现的是不同节点之间的通 ...
- System.ArgumentException: 已添加了具有相同键的项。(An item with the same key has already been added) 在 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) 在 System.Web.Mvc.Js
最近将一个项目从ASP.NET MVC 3升级至刚刚发布的ASP.NET MVC 5.1,升级后发现一个ajax请求出现了500错误,日志中记录的详细异常信息如下: System.ArgumentEx ...