大数据矩阵计算基础(二):R、Excel、Matlab中矩阵操作
一、R语言
构造矩阵
a=matrix(c(1,2,3,4),ncol=2,byrow=T)
b=matrix(c(5,6,7,8),ncol=2,byrow=T)
c=matrix(c(1,2,3,4),ncol=2,byrow=F)
function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
data项为必要的矩阵元素,nrow为行数,ncol为列数,注意nrow与ncol的乘积应为矩阵元素个数,byrow项控制排列元素时是否按行进行,dimnames给定行和列的名称。
一、R语言
二、Excel(复杂不常用)
由于Excel矩阵操作比较复杂,描述起来比较麻烦,大家可以百度一下 三、MatlabMATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。 MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。 MATLAB的意思是“矩阵实验室” ,因此它提供了许多创建矢量,矩阵和多维数组的便捷的方式。在MATLAB自己的语言中,一个矢量(vector)指的是一维(1×N或N×1)矩阵,在其他语言中通常被叫做数组(array)。 矩阵(matrix)通常指的是2-维数组,例如m×n数组其中m和n大于或等于1。多维数组通常指的是维数大于2的数组。
变量命名:Matlab的系统预定义变量(Predefined variable),定义变量时,不要使用这些名称!
矩阵创建在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]“内; 1. 直接输入法 a=[1,2,3;4,5,6;7,8,9] b=[1:1:3;4:1:6;7:1:9] 第一个值为起始值,中间为公差,最后为尾值 c=[linspace(1,3,3); linspace(4,6,3); linspace(7,9,3)] 第一个值为起始值,中间为尾值,最后为列数要保持一样不然会报错 例子如下: 2.利用MATLAB函数创建矩阵 (1)ones()函数:产生全为1的矩阵 (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 (6)生成对角矩阵 3.利用M文件来创建矩阵 4.大矩阵的建立 5.利用小矩阵构建大矩阵 合并注意维度一样 矩阵拆分
矩阵运算
部分命令运行: 注意这里的矩阵乘法与R语言不通,牢记
矩阵点运算在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算,如:.*、 ./、 .\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。
矩阵关系运算<(小于)、 <=(小于或等于)、 >(大于)、 >=(大于或等于)、 ==(等于)、~=(不等于)
例子:
按列算1 2 3 。。。找到相应的位置
A=fix((90-10+1)*rand(3)+10) 其他矩阵函数
|
矩阵线性运算
a+b:对应元素相加
a-b:对应元素相减
2*a:数与每个元素相乘
a*b: 简单的对应元素相乘,注意不是矩阵相乘矩阵乘法
- a%*%b:矩阵乘法(不懂矩阵乘法的百度)
- 若A为n×m矩阵,要得到A'B,可用函数crossprod(),该函数计算结果与t(A)%*%B相同,但是效率更高。
1 2 3 4 5 6 7 8 9 10 11 12 |
> A=matrix(1:12,nrow=4,ncol=3) > B=matrix(1:12,nrow=4,ncol=3) > t(A)%*%B <wbr /> <wbr /> <wbr /> <wbr />[,1] [,2] [,3] [1,] <wbr /> 30 <wbr /> <wbr /> 70 110 [2,] <wbr /> 70 <wbr /> 174 278 [3,] 110 <wbr /> 278 446 > crossprod(A,B) <wbr /> <wbr /> <wbr /> <wbr />[,1] [,2] [,3] [1,] <wbr /> <wbr />30 <wbr /> 70 110 [2,] <wbr /> <wbr />70 174 278 [3,] 110 278 446 |
矩阵转置
t(a)、t(b)
取方阵的对角线元素
diag(a)
求方阵的迹
在线性代数中,一个n×n矩阵A的主对角线(从左上方至右下方的对角线)上各个元素的总和被称为矩阵A的迹(或迹数),一般记作tr(A)。
命令:sum(diag(a))构造对角矩阵
c=diag(c(1,2,3,4))
1
2
3
4
5
6
7
8
9
10
11
> diag(diag(A))
<wbr /> <wbr /> <wbr /> [,1] [,2] [,3] [,4]
[1,] <wbr /> 1 <wbr /> 0 <wbr /> 0 <wbr /> 0
[2,] <wbr /> 0 <wbr /> 6 <wbr /> 0 <wbr /> 0
[3,] <wbr /> 0 <wbr /> 0 <wbr /> 11 <wbr /> 0
[4,] <wbr /> 0 <wbr /> 0 <wbr /> 0 <wbr /> 16
矩阵求逆
solve(a)
矩阵求逆可用函数solve(),应用solve(a, b)运算结果是解线性方程组ax = b,若b缺省,则系统默认为单位矩阵,因此可用其进行矩阵求逆,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
> a=matrix(rnorm(16),4,4)
> a
<wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> [,1] <wbr /> <wbr /> [,2] <wbr /> <wbr /> [,3] <wbr /> <wbr /> [,4]
[1,] 1.6986019 <wbr /> 0.5239738 0.2332094 0.3174184
[2,] -0.2010667 1.0913013 -1.2093734 <wbr /> 0.8096514
[3,] -0.1797628 -0.7573283 0.2864535 1.3679963
[4,] -0.2217916 -0.3754700 0.1696771 -1.2424030
> solve(a)
<wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> [,1] <wbr /> <wbr /> [,2] <wbr /> <wbr /> [,3] <wbr /> <wbr /> [,4]
[1,] 0.9096360 0.54057479 0.7234861 1.3813059
[2,] -0.6464172 -0.91849017 -1.7546836 -2.6957775
[3,] -0.7841661 -1.78780083 -1.5795262 -3.1046207
[4,] -0.0741260 -0.06308603 0.1854137 -0.6607851
> solve (a) %*%a
<wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> [,1] <wbr /> <wbr /> <wbr /> [,2] <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> [,3] <wbr /> <wbr /> <wbr /> [,4]
[1,] 1.000000e+00 2.748453e-17 -2.787755e-17 -8.023096e-17
[2,] 1.626303e-19 1.000000e+00 -4.960225e-18 6.977925e-16
[3,] 2.135878e-17 -4.629543e-17 1.000000e+00 6.201636e-17
[4,] 1.866183e-17 1.563962e-17 1.183813e-17 1.000000e+00
矩阵的行列式
- det(a)
det(b)
det(c)
二、Excel(复杂不常用)
- 定义矩阵名称
- 矩阵加法
- 矩阵减法
- 矩阵数乘
- 矩阵转置
transpose
Shift+Ctrl+Enter - 矩阵对应元素相乘
- 矩阵乘法
mmult - 矩阵的逆
minverse - 矩阵的行列式
mdeterm - 计算矩阵对应元素乘积之和
sumproduct
Shift+Ctrl+Enter
由于Excel矩阵操作比较复杂,描述起来比较麻烦,大家可以百度一下
三、Matlab
MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。 MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。
MATLAB的意思是“矩阵实验室” ,因此它提供了许多创建矢量,矩阵和多维数组的便捷的方式。在MATLAB自己的语言中,一个矢量(vector)指的是一维(1×N或N×1)矩阵,在其他语言中通常被叫做数组(array)。 矩阵(matrix)通常指的是2-维数组,例如m×n数组其中m和n大于或等于1。多维数组通常指的是维数大于2的数组。
- 第一个必须是英文字母,其组成可以是任意字母、数字、下划线,中间不可留空格、标点符号。
- 最多只能有 63个字母,关键字和标准函数名不能用作变量。
- 使用变量时,不需预先经过变量声明,而且所有数值变量均以预设的 double (双精度)形式储存。
- MATLAB标准函数名必须用小写字母,所以建议定义变量、自编函数名时用小写字母。
- 在matlab中,变量名是区分大小写的。
特别提醒:在编程时,变量的命名是很有学问的,不要随便命名,养成变量命名的好习惯。
变量命名:
Matlab的系统预定义变量(Predefined variable),定义变量时,不要使用这些名称!
- Ans 计算结果默认赋值变量
- pi:圆周率(pi只能用小写字母)
- Inf,inf:无穷大,如1/0
- I,j 虚数单位
- NaN,nan: not a number 非数,如0/0
- eps:浮点运算相对精度 eps是一个函数,eps在matlab中叫做“浮点零”,也叫matlab中的零值 ,是一个非常非常小的数,但不是0。 在程序中的应用是防止分母为零。
矩阵创建
在MATLAB中创建矩阵有以下规则:
a、矩阵元素必须在”[ ]“内;
b、矩阵的同行元素之间用空格(或”,” )隔开;
c、矩阵的行与行之间用”;” (或回车符)隔开;
d、矩阵的元素可以是数值、变量、表达式或函数;
e、矩阵的尺寸不必预先定义。
1. 直接输入法
a=[1,2,3;4,5,6;7,8,9]
b=[1:1:3;4:1:6;7:1:9]
第一个值为起始值,中间为公差,最后为尾值
c=[linspace(1,3,3); linspace(4,6,3); linspace(7,9,3)]
第一个值为起始值,中间为尾值,最后为列数要保持一样不然会报错
例子如下:
2.利用MATLAB函数创建矩阵
(1)ones()函数:产生全为1的矩阵
ones(3)
ones(3,4)
(2) zeros()函数:产生全为0的矩阵;
zeros(3)
zeros(3,4)
(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;
rand(3)
rand(3,4)
(4) eye()函数:产生单位阵;
eye(3)
(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。
randn(3)
randn(3,4)
(6)生成对角矩阵
diag([1,2,3,4])
diag([1,2,3,4],1)
3.利用M文件来创建矩阵
4.大矩阵的建立
5.利用小矩阵构建大矩阵
e=[a;b]
f=[a,b]
合并注意维度一样
矩阵拆分
- 寻值: a(2,2) 、 a(1,:) 、 a(:,3) 、 a(1:2,1:2) 、 a(1,1:end) 、 a(end,end)
部分命令,原理都是一样
矩阵运算
- a+d
- a-d
- 3*a
- a*d
- a^2
- b=a^0.5
部分命令运行:
注意这里的矩阵乘法与R语言不通,牢记
- 求矩阵的逆
a=[5,7,1;6,8,9;1,9,7]
inv(a) - 矩阵除法:
- 求行列式
det(a) - 求对角线元素
diag(a)
diag(a,1) (1为偏移量,向右上角偏移的位数,-便是向左下角) - 矩阵转置
a’ - 矩阵开方
sqrt(a)
a.^0.5
矩阵点运算
在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算,如:.*、 ./、 .\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。
- a.*b
- a.\b
- a./b
- a.^2
- a.^0.5
矩阵关系运算
<(小于)、 <=(小于或等于)、 >(大于)、 >=(大于或等于)、 ==(等于)、~=(不等于)
- a<b
- a<=b
- a>b
- a>=b
- a==b
- a~=b
- a>5
- a>=5
- a==5
例子:
找出a中大于5的元素位置
find(b>5)
按列算1 2 3 。。。找到相应的位置
产生3阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。
A=fix((90-10+1)*rand(3)+10)
P=rem(A,3)==0
其他矩阵函数
- 改变维数
a=[1:12]
reshape(a,3,4) - 旋转90度
rot90(b) - 左右翻转
fliplr(b) ; flipdim(b,2) - 上下翻转
flipud(b) ; flipdim(b,1) - 上三角元素
tril(c)
tril(c,1) - 下三角元素
triu(c)
triu(c,-1) - 确定矩阵的维数
size(b) - 求矩阵的迹
trace(c)
大数据矩阵计算基础(二):R、Excel、Matlab中矩阵操作相关推荐
- 23篇大数据系列(二)scala基础知识全集(史上最全,建议收藏)
作者简介: 蓝桥签约作者.大数据&Python领域优质创作者.管理多个大数据技术群,帮助大学生就业和初级程序员解决工作难题. 我的使命与愿景:持续稳定输出,赋能中国技术社区蓬勃发展! 大数据系 ...
- 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的三种安装模式和MySQL搭配使用 一.Hive的安装方 ...
- 大数据技术基础实验十三:Kafka实验——订阅推送示例
大数据技术基础实验十三:Kafka实验--订阅推送示例 文章目录 大数据技术基础实验十三:Kafka实验--订阅推送示例 一.前言 二.实验目的 三.实验要求 四.实验原理 1.Kafka简介 2.K ...
- 数据可视化系列-01大数据可视化基础
文章目录 1.概述 2.大数据可视化基础 2.1 数据可视化基础知识 1.数据可视化简史: 2.数据可视化是什么: 3.数据可视化的分类: 4.数据可视化流程: 5.数据可视化的意义: 2.2 认识B ...
- 大数据技术基础实验三:HDFS实验——部署HDFS
大数据技术基础实验三:HDFS实验--部署HDFS 文章目录 大数据技术基础实验三:HDFS实验--部署HDFS 一.前言 二.实验要求 三.实验原理 1.什么是HDFS? 2.HDFS的体系结构 3 ...
- 2021年大数据HBase(二):HBase集群安装操作
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase集群安装操作 一.上传解压HBase安装包 ...
- Hadoop大数据零基础高端实战培训系列配文本挖掘项目
<Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点.十大目标)> 课程讲师:迪伦 课程分类:大数据 适合人群:初级 课时数量:230课时 用到技术:部署Hadoop集群 涉 ...
- python大数据零基础_零基础学习大数据人工智能,学习路线篇!
大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后. Python:Python 的排名从去年开始就借助人工智能持续上升,现在它 ...
- 大数据入门培训之大数据开发基础知识学习
在目前相信大多数IT开发人员对于人工智能+大数据并不陌生,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求.因此对大数据知识也有必要进行一些学习理解,带大家来学习了解一下 ...
最新文章
- 适用于AMD ROC GPU的Numba概述
- 从头开始学python教程_怎样开始自学Python?
- 驱动调试(二)-环形缓冲区到文件
- C++:MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart...
- 局域网内计算机可以互访 无法上互联网,我使用路由器后访问互联网正常,但是网上邻居不能互访,怎么办?...
- 某瓜数据之sign参数分析
- 前端学习(2552):vue简介
- ruby三元操作符_在Ruby中使用操作符将元素添加到数组实例中
- php 创建zip,php生成zip压缩文件的实例详解
- python x y 定位点击,python - Python找到一个点相对于其他四个已知点的x,y位置 - 堆栈内存溢出...
- Python中的null类型
- kafka 基础知识梳理-kafka是一种高吞吐量的分布式发布订阅消息系统
- 简单帅气的折纸机器人_新型电磁喷雾可将任何物体变成机器人,有望在生物学领域应用...
- servlet和action中获取URL中的汉字(解决URL中汉字为乱码的问题) .
- 系列教程丨用 Docker 探索开源软件 —— Elasticsearch(一)
- 视频怎么转化成动态图?巧用视频转gif生成器
- jupyter notebook和python有什么区别_Python神器 Jupyter Notebook
- 最新MT2503平台技术资料集锦
- 推荐几个rpm包下载网站
- 使用微 PE(U盘)安装 Windows 10 操作系统
热门文章
- 网文版ChatGPT来了:大模型辅助写作,澜舟和中文在线联手出品
- snmp工具_运维超级好用工具大PK,你在用哪个?
- 中国虚拟人哪家强?沙利文、IDC:小冰百度商汤位列第一梯队
- HDU1507 Uncle Tom's Inherited Land*
- 2021年二季度重大舆情热点盘点分析
- Adobe Illustrator地图设计插件mapublisher,AI制图?
- 在线思维导图Processon部分截图
- 运行vue项目时,如果一直报eslint语法错误的解决方案
- PowerPoint基础操作-PowerPoint学习记录-8.1/2/3/4
- Python re库