MATLAB学习笔记(二)——主要是MATLAB的矩阵知识
PS:主要是讲解矩阵的相应的实现方法,其实MATLAB的很大一部分的优势,就是集成了矩阵级别的运算,并以此为特点,可以进行多维空间上的验证。
让我们懂得了原来线性代数如此有用= - =。
(一)MATLAB矩阵
一、矩阵的建立
1、直接输入法创建:

还可以有复数矩阵的建立,有两种方法:
(1)直接按照直接输入法来建立矩阵,但是元素可以直接打成复数的形式(a+bj)
(2)还有就是分别建立一个实部还有一个虚部的矩阵,然后通过(a+bj)就可以得到。
2、M文件建立矩阵
就是把建立的矩阵存在一个文件里,下次直接调用就可以了。然后方法如下(下一篇日志会叙述)


3、利用冒号表达式建立一个向量
(1)e1:e2:e3
其中e1为初始值,e2为步长,e3为终止值(只取到小于或者等于终止值就可以了),
如果e2省略,那么默认步长为1;
(2)lidspace(a,b,n)
a,b是生成向量的第一个和最后一个元素,n是元素总数。
4、建立大矩阵(由方括号中的小矩阵或者向量组合起来)

5、通过MATLAB集成的交互界面进行创建(最快)
(1)找到新建变量,并单击

(2)然后就可以进行新建变量了

1处可以改变变量名字,2处可以进行矩阵的输入,3处可以查看矩阵在内存中是否保存,没有的话请按Ctrl+s。
二、矩阵的拆分
1、矩阵元素
(1)可以直接通过下标进行修改和访问,如果超过了原来矩阵的维度,会自动扩充,并且未填充的元素置为0。

(2)矩阵元素是按照列来存储,先第一列然后第二列。然后下标和序号可以一一对应,然后由对应的sub2ind和ind2sub求得
、

2、矩阵拆分
(1)用冒号表达式来获得子矩阵
a、a( : ; j )表示取a矩阵的第j列的全部元素;同样的a(i;:)表示取a矩阵第i行的全部元素。也可以直接饮用对应下标取单独的元素。
b、里面可以嵌套冒号表达式,这样子就可以取出一个小的矩阵。例子如下

c、end表示最后一个数。
(2)利用空矩阵删除矩阵的元素
clear是把变量从空间中删除,而[]则是赋值成一个空的矩阵。
同样可以使用引用,进行数组的置空
三、特殊矩阵
1、通用的特殊矩阵:
| zeros | 产生0的矩阵 |
| ones | 产生1的矩阵 |
| eye | 产生对角矩阵 |
| rand | 产生0~1间均匀分布的随机矩阵 |
| randn | 产生矩阵为0,方差为1的标准正态分布随机矩阵 |

2、用于专门学科的特殊矩阵
(1)魔方矩阵(每行每列每对角线都相等)
magic(n): 生成n阶的魔方阵。
(2)范德蒙德矩阵
(3)希尔伯特矩阵
hilb(n) n阶希尔伯特矩阵
invhilb(n) n阶希尔伯特的逆矩阵
(4)托普利兹矩阵
toeplitz(x,y)

(5)伴随矩阵


(二)MATLAB运算
一、算术运算
1、基本算数运算
(1)加减
(2)乘法
(3)除法
(4)乘方
这些运算主要都要服从矩阵的运算法则。维度不符合matlab会进行报错。
2、点运算
格式是在正常的符号前面加上一个“.”就好了。
运算的结果就是对矩阵中的每个元素相应的运算就好了,
二、关系运算
1、关系运算符:
| < | 小于 |
| <= | 小于等于 |
| > | 大于 |
| >= | 大于等于 |
| == | 等于 |
| ~= | 不等于 |
2、运算法则:
(1)标量对标量:直接进行运算
(2)矩阵对矩阵:每个元素对应进行运算
(3)标量对矩阵:标量对每个元素进行运算
最后是真的为“1”,假的为“0“。
PS:在这里记下一个求求余数的函数rem
三、逻辑运算
1、逻辑运算符。

2、运算法则同上。
PS:运算符的优先级排序:算术>关系>逻辑
3、其他相应的一些逻辑函数(通过名字来记住功能)

(三)矩阵分析
一、对角阵与三角阵
1、对角阵
(1)提取矩阵对角线上的元素: diag(A), diag(A,k)
(2)构造对角阵: diag(A)
对每行每列进行相同乘数的运算,用对角阵相乘,左乘(对每行进行相乘),右乘(对每列进行相乘)
2、三角阵
(1)上三角阵
triu(A):将A变成一个上三角矩阵(下半边为0)
triu(A,k):将矩阵A的第k条对角线以上的元素
(2)下三角矩阵
tril(A)
tril(A,k)
二、矩阵的转置与旋转
1、矩阵的转置
(1)转置运算符是单撇号(’)
(2)作用就是求转置,但是请注意不是求逆矩阵。
2、矩阵的旋转
(1)运算符号:rot(A,k)
就是将矩阵逆时针旋转k*90°的角度。如果单单旋转90°就可以直接省略k这个参数。
3、矩阵的左右翻转
(1)运算符号:fliplr(A)
4、矩阵的上下翻转
(1)运算符号:flipud(A)
三、矩阵的逆与伪逆
1、矩阵的逆
(1)定义:A·B=B·A=E,就称A和B互为逆矩阵。
(2)运算函数:inv(A)
(3)应用:可以用来求解线性方程组


2、矩阵的违逆
(1)定义:我们知道在矩阵不是满秩的时候是没有逆矩阵的。但是可以找到一个与A的转置矩阵A`同型的矩阵B,使得满足矩阵的逆的定义。此时称矩阵B为矩阵A的违逆。
(2)运算函数:pinv(A)
四、矩阵的行列式
运算函数:det(A)
五、矩阵的秩与迹
1、矩阵的秩
(1)定义:就是一个矩阵的行数和列数线性无关的数目
(2)运算函数:rank(A)
2、矩阵的迹
(1)定义:就是矩阵对角阵上的元素之和。
(2)运算函数:trace(A)
六、向量和矩阵的范数
1、定义:用来度量矩阵或者向量在某种意义下的长度。
2、向量的3种常用范数以及计算函数

3、范数的三个性质:
(1)非负性
(2)齐次性
(3)满足施瓦茨不等式(a,b)<=(a,a)(b,b)
4、矩阵的范数及其计算函数


运算函数同向量的。
七、矩阵的条件数
(1)定义:在求解线性方程组时,如果系数的微小改变会导致最终结果的很大改变,称系数矩阵为病态矩阵,而不会导致最终结果的很大改变的话,则是良性矩阵,然后条件数便是来衡量这一情况的一个参数。
条件数等于A的范数与A的逆矩阵的范数的乘积。这样的话,条件数总是大于1的,如果越接近于1的话,性能越好。
(2)函数为:

八、矩阵的特征值与特殊矩阵




(六)字符串
1、规则:
(1)用单引号括起来就是字符串。
(2)然后字符串可以写成一个矩阵,但是一个字母是一个元素,所以一定要保证矩阵的维数是正确的。
(3)如果字符串本身有单引号,就要加2个单引号。
(4)较长的字符串可以用字符串向量表示,及用[]括起来。
(八)稀疏矩阵
一、矩阵存储方式
1、完全储存方式:就是之前我们使用的方式
2、稀疏矩阵方式:
二、稀疏储存方式的产生:
1、将完全储存方式转化为稀疏矩阵的方式
(1)A=sparse(S):将矩阵S转化为稀疏储存方式的矩阵A
(2)sparse的其他调用方式:
sparse(m,n):生成一个m*n的所有元素都是0的稀疏矩阵
sparse(u,v,S):u,v,S是3个等长的向量。S是要建立的稀疏矩阵的非零元素,u,v是行列下标,然后S是相应的元素值。
(3)其他操作的方式:
[u,v,s]=find(A):返回矩阵A中非零元素的下标和元素。
full(A):返回和稀疏储存矩阵A对应的完全储存方式矩阵。
2、产生稀疏储存矩阵

MATLAB学习笔记(二)——主要是MATLAB的矩阵知识的更多相关文章
- MATLAB学习笔记(六)——MATLAB数据分析与多项式计算
(一)数据处理统计 一.最大值和最小值 1.求向量的最大值和最小值 y=max(X); %返回向量X的最大值存入y,如果X中含有复数则按模最大的存入y [y,I]=max(X);%返回向量X的最大值存 ...
- MATLAB学习笔记(十一)——MATLAB图形用户界面设计
(一)菜单设计 一.建立用户菜单 1.概况: 用户菜单一般含有一级菜单和二级菜单,乃至多级菜单.每一级菜单又包含多个菜单项.建立菜单可以使用uimenu函数. 2.uimenu函数调用: %建立一级菜 ...
- MATLAB学习笔记(十)——MATLAB图形句柄
(一)图形对象及其句柄 一.图形对象 MATLAB图形对象包括: 1.MATLAB每一个具体图形一定包括计算机屏幕和图形窗口两个对象 二.图形对象句柄 1.定义 MATLAB在创建每一个图形对象时,都 ...
- MATLAB学习笔记(九)——MATLAB符号计算
(一)符号对象 一.建立符号对象 1.建立符号变量和符号常量(sym,syms): 只可以建立一个符号变量 可以一次性建立多个符号变量 PS:符号常量计算的结果是精确的数学表达式,而数值常量是进行约分 ...
- MATLAB学习笔记(八)——MATLAB数值积分与微分
(一)数值积分 一.数值积分的MATLAB实现方法: 1.变步长辛普生法(quad)法: (1)调用格式: [I,n]=quad('fname',a,b,tol,trace); fname是被积函数: ...
- MATLAB学习笔记(七)——MATLAB解方程与函数极值
(一)线性方程组求解 包含n个未知数,由n个方程构成的线性方程组为: 其矩阵表示形式为: 其中 一.直接求解法 1.左除法 x=A\b; 如果A是奇异的,或者接近奇异的.MATLAB会发出警告信息的. ...
- MATLAB学习笔记(五)——MATLAB绘图
(一)二维数据曲线图 一.绘制单根二维曲线 1.基本调用格式 plot(x,y) (1)x,y为长度相同的向量,分别用于储存x坐标和y坐标数据 (2)用于绘制以x,y为横,纵坐标的二维曲线. (3)举 ...
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
- matlab学习笔记(一)单元数组
matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x) :取最大的整数 ceil(3.18)=4,ceil( ...
- 【数学建模】MATLAB学习笔记——函数式文件
MATLAB学习笔记——函数式文件 引入函数式文件 说明: 函数式文件主要用于解决计算中的参数传递和函数调用的问题. 函数式的标志是它的第一行为function语句. 函数式文件可以有返回值,也可以没 ...
随机推荐
- 重温设计模式(三)——职责链模式(chain of responsibility)
一. 写在前面的 这么多的设计模式,我觉得职责链是我第一次看上去最简单,可是回想起来却又最复杂的一个模式. 因此,这个文章我酝酿了很久,一直也没有胆量发出来,例子也是改了又改,可是仍然觉得不够合理.所 ...
- 我的电脑右下角的日期也不见了只剩下时间,Win7系统,请问是什么原因啊?
A:今天是2013/10/10,日期变为八位,宽度就不够了,把任务栏拉宽就好了 Q:win7 任务栏时间区可以拉宽吗?使之显示日期等 A:你的任务栏锁定了的,右键单击任务栏-锁定任务栏前面的勾去掉,鼠 ...
- CocoStudio基础教程(4)骨骼动画的动态换肤
1.概述 游戏中人物的状态会发生改变,而这种改变通常要通过局部的变化来表现出来.比如获得一件装备后人物形象的改变,或者战斗中武器.防具的损坏等.这些变化的实现就要通过动态换肤来实现. 2.运行到程序 ...
- svn提交时强制添加注释 (转)
SVN提交时,如果没有注释,在查阅历史时,会非常不方便.因此我们需要有一个让程序员提交代码时,强制添加注释的规则.下面看看在SVN中怎么实现. 1. 推荐使用VisualSVN作为服务端(免费下载地址 ...
- sqlmap参数大全
-u #注入点-f #指纹判别数据库类型-b #获取数据库版本信息-p #指定可测试的参数(?page=1&id=2 -p “page,id”)-D “”#指定数据库名-T “”#指定表名-C ...
- openCV的基本操作
http://www.cnblogs.com/luluathena/archive/2010/09/29/1838471.html
- [ruby on rails] 跟我学之(2)HelloWorld
1. 创建工程 rails new blog 2.查看下文件结构 tree 输出如下,请留意红圈中的部分. Gemfile, 用来管理应用程序的gems, 有点类似于python的包,有专门的网站来查 ...
- Nginx图片剪裁模块探究 http_image_filter_module
官方地址:http://nginx.org/en/docs/http/ngx_http_image_filter_module.html 煮酒品茶:前半部安装和官方说明,后半部分实践 #yum ins ...
- hdparm测试硬盘性能
<1>Centos安装hdparm测试硬盘性能 一.安装hdparm yum install hdparm -y Linux学习,http:// linux.it.net.cn 二.评估读 ...
- Ubuntu14.04server开放rootssh登录权限
刚安装了Ubuntu 14.04 server的虚拟机,普通帐号可以远程登录,但是root不行,输入密码后一直报错: permission denied 最后发现ssh的配置(/etc/ssh/ssh ...