《MATLAB从入门到放弃》打通 “矩阵” 障碍
目录:
» 矩阵的生成与大小
> 简单矩阵的生成
> 随机矩阵的生成
> 矩阵的大小
» 矩阵的索引与访问
» 矩阵的拼接与裁剪
> 矩阵的拼接
> 矩阵的裁剪
» 矩阵的运算与操作
> 矩阵的算术运算
> 矩阵的翻转
矩阵的生成与大小
简单矩阵的生成
| 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从入门到放弃》打通 “矩阵” 障碍的更多相关文章
- 《MATLAB从入门到放弃》二维曲线和图形绘制基础(二):使用Help文档学习line、plot、plotyy、subplot、hold绘图函数
目录: » plot 最常用的二维曲线绘图函数 > 帮助文档 > 基本使用语法 > 线条的样式.符号和颜色调整 > 图形属性调整 > 使用图形句柄进行设置 » ...
- 《MATLAB从入门到放弃》二维曲线和图形绘制基础(一): 什么是图形对象和句柄 ?
图形对象 一个图形包含了不同的对象 图形包括 核心对象和绘制对象 . 核心对象 线条对象 : line 文本对象 : text 矩形对象 : rectangle 补丁对象 : patch 图像对象 ...
- 从零单排入门机器学习:Octave/matlab的经常使用知识之矩阵和向量
Octave/matlab的经常使用知识之矩阵和向量 之前一段时间在coursera看了Andrew ng的机器学习的课程,感觉还不错.算是入门了.这次打算以该课程的作业为主线,对机器学习基本知识做一 ...
- dotnet 从入门到放弃的 500 篇文章合集
本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...
- 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集
title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...
- JFreechart从入门到放弃
JFreechart从入门到放弃 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 http://www.jfree.org/jfreechart/ 引言 干嘛用的 使用java画图, ...
- matlab快速入门
matlab快速入门 1矩阵 生成矩阵 % 直接法 a = [1,2,3;4,5,6;7,8,9]; % 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略 b = 1:1:10; % 1,2 ...
- [精品书单] C#/.NET 学习之路——从入门到放弃
C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...
随机推荐
- C# 根据Excel模版导出文件
string fileName = Path.Combine(Application.StartupPath, "kfwh_yhxf.xls"); Microsoft.Office ...
- javascript基础进阶——执行环境及作用域链
概念 执行环境 执行环境定义了变量或函数有权访问的其他函数,决定了他们各自的行为.每个执行环境都有一个与之关联的变量对象. 变量对象 环境中定义的所有变量和函数都保存在这个对象中. 全局执行环境 全局 ...
- 一款代码扫描工具 火线!!!! fireline
1. 在火线官网进行火线相关文件的下载,下载后的文件为fireline.jar 2.运行fireline.jar文件前请先确认系统环境中已安装Java JDK. java-version 查看 3 ...
- 马士兵讲jsp项目--BBS项目分析笔记
1 导言 作为一个新手JAVA程序员,我相信很多人和我一样急切的想要寻找项目来做,这里我把马士兵老师讲的JAVA WEB的第一个小项目拿过来给大家分享一下. 首先,对一个项目而言我们先要认识清楚我们要 ...
- Linux和win7(win10)双系统时间错误问题 时间相差8小时
转载自 http://m.2cto.com/os/201204/126212.html 有修改 前一段时间刚装了centos 5.4和win7的双系统.发现win7的系统时间不对,机子没上网,每天开机 ...
- [小北De编程手记] [Lesson 02] AutoFramework构建 之 Page Objects - 设计模式
写在最前面 这个系列的主旨是要跟大家分享一下关于自动化测试框架的构建的一些心得.这几年,做了一些自动化测试框架以及团队的构建的工作.过程中遇到了很多这样的同学,他们在学习了某一门语言和一些自动化测试的 ...
- 【grunt】两小时入门
目录: 1. 用途和场景 2.Grunt插件 3.相关资源 4.环境安装 5.开始学习 5.1 一个新项目 5.2 生成package.json 5.3 在项目中安装grunt和相关插件 5.4 Gr ...
- 动态创建angular组件实现popup弹窗
承接上文,本文将从一个基本的angular启动项目开始搭建一个具有基本功能.较通用.低耦合.可扩展的popup弹窗(脸红),主要分为以下几步: 基本项目结构搭建 弹窗服务 弹窗的引用对象 准备作为模板 ...
- bootstrap 表单+按钮+对话框
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 结对作业1----基于flask框架的四则运算生成器
011.012结对作业 coding地址:https://coding.net/u/nikochan/p/2nd_SE/git 一.作业描述 由于上次作业我没有按时完成,而且庞伊凡同学编程能力超棒,所 ...
.png)

.png)




.png)
,A(2,4)=9, A=.png)

