目录:

»   矩阵的生成与大小

 >   简单矩阵的生成

 >  随机矩阵的生成

 >   矩阵的大小

»  矩阵的索引与访问

»  矩阵的拼接与裁剪

>  矩阵的拼接

>  矩阵的裁剪

»  矩阵的运算与操作

矩阵的算术运算

矩阵的翻转


矩阵的生成与大小

简单矩阵的生成

A = [1 2; 3 5; 8 5; 4 6] 空格/逗号表示一列一列,分号/换行表示一行一行
B = 1:2:9 从1到9,每隔2个取一个整数,即1,3,5,7,9  (2可以是整数/小数) 。2不写,默认1
C = zeros (5,6) 5*6全0矩阵
D = ones(5,6) 生成5*6的全1矩阵
E = linspace (4,12,6) 生成4~12之间5个等分的数(小数/整数)。6不写,默认100
F = logspace(1,3,5) 生成5个[10^1 , 10^3]之间的数。5不写,默认50
G = eye(5,6) 生成5行6列对角线是1,其他是0的矩阵 。  
 

随机矩阵的生成

A = rand(5,6) 生成[0,1]范围内的5*6的随机小数矩阵
B= rand 只产生一个[0,1]范围内的随机小数矩阵
C=m+(n-m)*rand(a, b) 在[m,n]范围内生成a行b列小数矩阵
D= randi(m,a) 生成[1,m]范围内的a*a整数矩阵
E = randi(a)  生成一个[1,a]之间的整数
F = randi([-5,5],10,1) 生成[-5,5]范围内的10*1的整数矩阵
 
 

矩阵大小

d = size(A) d=x y   x是A的行数,y是A的列数 。三维数组也适合
[m,n] = size(A)  m是A的行数,n是A的列数
d = length(A) 返回矩阵A维度最大的维度数
d = numel(A) 返回矩阵中元素的总个数,行数 * 列数
 
 
 

矩阵的索引与访问

@注意: 下标从1开始

 
A(m,n) 访问A的m行n列
A(m) 访问A的某个元素,按列
A(m:n) 访问A的m~n的数据块,按列
A(m:a:n) 在m~n的范围内,每隔a个数访问,按列
A([a,b,c..]) 直接访问第a,b,c ..个数据
A(a,:) / A(:,a) a行所有数据 / a列所有数据
C = A([1,3],[4,2])
取第1行,第三行,第4列,第2列组合的矩阵
并且第4列为第一列
C= A(1:3:9,2:3:9) 取1,4,7行(1~9,每隔3),列也是如此
A(:,[a,b]) 第a列和第b列的所有元素
A(a:b,[c,d])  a~b行和c列d列元素
A(find(B)) A和B是大小相同的矩阵,如果B的当前位置元素为非0,则取A中当前位置的元素
d = sub2ind(size(A),m,n) d的值是A矩阵m行,n列对应的单下标索引
[m,n] = ind2sub(size(A),d) A矩阵单下标d转换成双下标的m行,n列

矩阵的拼接与裁剪

矩阵拼接

C = cat(标识A,B)
A和B根据标识组合起来,得到新矩阵C
标识:1-各个矩阵竖着叠在一起(列数必须一样) 
          2-各个矩阵横着连在一起(行数必须一样) 
 
C=vertcat(A,B) 两个矩阵竖着叠在一起,相当于cat标识为1的情况 。(列数必须一样)
C = horzcat(A,B) 两个矩阵横着连在一起,相当于cat标识为2的情况 。(行数数必须一样)

C=repmat(A,3,2)

矩阵A为一个块,以块为基本单位拼成3行个块,2列个块的新矩阵
C=blkdiag(A,B) 对角线拼接矩阵
C=kron(A,B)    红框行数和列数与A相同,每个红框里面的矩阵行数和列数与B相同,每个红框矩阵的元素是这个红框代表的元素(第一个红框是A中的0元素,第二个红框是A中的1元素....)*B中所有元素 
 
索引扩展 以最小的代价把超过索引的点(矩阵外的一个点)包含进来
  A =,A(2,4)=9, A=
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

矩阵裁剪

A(1:3,:)=[] 第1~3行所有列为空,也就是删除第1~3行

矩阵的运算与操作

矩阵算术运算

A' 矩阵转置
用函数transpose(A)也可以
用  .'  也是可以的
用ctranspose(A)也是可以的
inv(A) A的逆矩阵  
A*10 矩阵每个元素*10 ,同样适应于 + - * /  
A+B 、A-B、 A*B 、A/B、 A\B
参考数学中两个矩阵的运算
A/B: A*inv(B)
A\B:inv(A)*B
 
A.*B、A./B(A除以B)、A.\B(B除以A) 两个矩阵对应位置上的元素进行计算  
A.^B、 A.^2、2.^A 对应位上元素进行计算  
trace(A)   矩阵的迹,等于矩阵对角线元素的和,矩阵的特征值之和  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

矩阵翻转

flipud(A)
矩阵 上下翻转,默认中心轴为中间的那一行
共有偶数行的话直接翻转,奇数行的话中间一行不动
fliplr(A) 矩阵 左右翻转
rot90(A,k) A按照逆时针旋转90*k度,k默认为1
 
 
reshape(A,a,b) 把A调整成a行,b列 。 A的大小始终为a*b, 单下标索引调整前后不能变 
             
 
 

《MATLAB从入门到放弃》打通 “矩阵” 障碍的更多相关文章

  1. 《MATLAB从入门到放弃》二维曲线和图形绘制基础(二):使用Help文档学习line、plot、plotyy、subplot、hold绘图函数

    目录: »  plot 最常用的二维曲线绘图函数 >  帮助文档 >  基本使用语法 >  线条的样式.符号和颜色调整 >  图形属性调整 >  使用图形句柄进行设置 » ...

  2. 《MATLAB从入门到放弃》二维曲线和图形绘制基础(一): 什么是图形对象和句柄 ?

    图形对象 一个图形包含了不同的对象 图形包括 核心对象和绘制对象 .  核心对象 线条对象 : line 文本对象 : text 矩形对象 : rectangle 补丁对象 : patch 图像对象  ...

  3. 从零单排入门机器学习:Octave/matlab的经常使用知识之矩阵和向量

    Octave/matlab的经常使用知识之矩阵和向量 之前一段时间在coursera看了Andrew ng的机器学习的课程,感觉还不错.算是入门了.这次打算以该课程的作业为主线,对机器学习基本知识做一 ...

  4. dotnet 从入门到放弃的 500 篇文章合集

    本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...

  5. 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集

    title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...

  6. CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

    前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...

  7. JFreechart从入门到放弃

    JFreechart从入门到放弃 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 http://www.jfree.org/jfreechart/ 引言 干嘛用的 使用java画图, ...

  8. matlab快速入门

    matlab快速入门 1矩阵 生成矩阵 ​ % 直接法 a = [1,2,3;4,5,6;7,8,9]; % 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略 b = 1:1:10; % 1,2 ...

  9. [精品书单] C#/.NET 学习之路——从入门到放弃

    C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...

随机推荐

  1. sweetalert------一个非常萌的alert!

    今天逛github的时候发现一个非常萌的alert,比IE和各大浏览器的原alert美多惹. github项目地址:https://github.com/t4t5/sweetalert 通过git c ...

  2. go web 第一天 学习笔记

    package main import ( "fmt" "log" "net/http" "strings" ) fun ...

  3. 九天学会Java,第四天,循环结构

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...

  4. string,char*,int 之间的转化

    c++中经常遇到string,char*,int之间的相互转化,今天就来整理一下. 以下是转载并修改的内容: 以下是常用的几种类型互相之间的转换 string 转 int先转换为char*,再使用at ...

  5. 排序算法——选择排序(js语言实现)

    选择排序:顾名思义选择,选择排序属于O(N^2)的排序算法,意思就是选择数组中的最小的拿出来放在第一位,然后再剩下的数里面,选择最小的,排在第二位,以此类推. 例如:8  3  4  5  6  2  ...

  6. [2012-06-18]awk利用关联数组合并记录

    问题源起:http://bbs.chinaunix.net/thread-3753784-1-1.html 代码如下 {% capture text %} $awk '{if(!a[$1]){a[$1 ...

  7. JS中 事件冒泡与事件捕获

    [JS中的事件流]  1.事件冒泡:当某DOm元素触发一种事件时,会从当前节点开始,逐级往上触发其祖先节点的同类型事件,直到DOM根节点:   >>>什么情况下会产生事件冒泡 ① D ...

  8. Django models数据库配置以及多数据库联用设置

    今天来说说web框架Django怎么配置使用数据库,也就是传说中MVC(Model View Controller)中的M,Model(模型). 简单介绍一下Django中的MVC: 模型(model ...

  9. (三)、LNMP的搭建,并制作rpm包

    中小型规模网站集群架构:yum仓库搭建 : 矮哥linux运维群:93324526 编译的三条命令的规则 ./configure 就是在本地创建了一个Makefile文件 (也就是指定一下各种配置参数 ...

  10. !JS实战之随机像素图

    JavaScript实例分享之----画随机像素图.随机像素图(作者自己取得名字)指的是一张图片上每一个像素的颜色都是随机的.此时应该能联想到这幅图多么眼花缭乱,好吧,我们用JS来实现它的原因是JS很 ...