r语言中矩阵QR分解_从零开始学R语言Day4|向量、矩阵和数组
从零开始学R语言Day4|向量、矩阵和数组
1.1向量
1.1.1向量
在Day2中我们提及过用和c()函数来构建向量,具体实例如下。
我们还可以采用vector(“类型”,长度)函数来创建一个指定类型和长度的矢量,这里的类型是指数据类型。但是个人觉得这个函数很鸡肋,因为不能控制具体的参量输入,只能做初始化用途,据说是R语言发展历史中的遗留函数,所以本函数就权当了解一下R的历史吧。具体实例如下:
此后这样的鸡肋函数将不再介绍和记录,感觉意义不大。
1.1.2序列和索引
可以用seq()函数构建序列,功能和:相似,但与:不同的是seq能够控制步长。因此seq()比:会更好用一点。seq()的用法如下:
seq(初始值,终止值,步长)
seq()函数下的各种方法的功能均相仿,对此我也表示比较困惑,诸如http://seq.int、seq_len、seq_along。
值得一提的是seq.Data()是对时间取序列
length()函数可以求得所有数据类型的长度,但要注意对字符串类型的向量求长度的时候计算的是向量里的因子个数
如果要求得向量里每个字符串的长度,则使用nchar()
用 变量命[] 这种形式可以索引向量中的某个元素,需要注意的是,R中下表不是从0开始计算而是从1开始计算。当你想要一次返回多个值时,应该用c()函数联接下标,否则将报错。
如果给向量中每个函数进行了命名,索引其名字也可以返回值。
R语言的索引和其他语言的索引还有一个不同之处,一般编程语言以负数为下标是从末尾往前读取,比如说-1读取的是最后一个字符,但是在R中以负数为索引则是不引用这个位置的字符的意思。比方说x[-2]则是跳过下标为2的字符,具体实例如下:
x[] 这条指令将返回整个向量
which()将返回逻辑值为真的值的位置,因此当你需要检索检索某个区间内的值的位置的时候可以很方便的使用他,which.min()是检索出最小值的位置,which.max()是检索出最大值的位置。
rep()函数允许重复使用元素创建矢量,rep有几种用法,不太好用语言概述,因此枚举简单的实例加以注解
rep_len()是rep(1:5,length.out=7)这个用法的变体
1.2矩阵和数组
向量是数组的特殊形式,即一维数组,故此处的数组是从二维开始算起的。矩阵也是数组的特殊形式。
1.2.1创建数组和矩阵
array()函数创建数组,它总共可以输入值、维度和维度名三个参量,当然参数名是一个可选的参量,不输入系统会生成默认的参量名。下面上例子,通过例子加注解的方式会更直白。
矩阵的构建使用matrix()函数,具体用法和array()相似,只是matrix()没有dim参量,而是换成了nrow、ncol.上实例:
在这里我不得不多嘴一句,在构建这种有大量括号的语句的时候,一定要小心细致的检查任意一个标点符号,任何地方出错都会报如下错误
我在编例子时就因为丢了一个小小的逗号报错了。
1.2.2数组的索引
数组的索引和向量的索引语法一致,四种指定索引的方法在这里均可成立(正整数、负整数、逻辑值、元素名称),这里不过多的赘述。
语法:x[第几行,第几列]也可以结合c函数同时索引几个数据。
1.2.3合并矩阵
第一步:用c函数将两个矩阵转换成向量
第二步,根据自身需要选择cbind()、rbind()函数按行和列来绑定两个矩阵
1.2.4数据运算
在复合线性代数的规则下,数组之间均可以进行加减乘除,比如上例中要将x、y相加,直接键入x+y即可。
t()函数可以用来转置矩阵,但不能转置更高维度的数组
矩阵的内乘运算使用%*%这一运算符,外乘使用%o%这一运算符,这里不再举例,运用十分简单。
矩阵求反
方法一:
先对矩阵求-1次幂,再对求得的-1次幂的矩阵用solve()函数。
注意!!!必须时正方形的矩阵,否则报错!!!
法二:还可以用qr.solve()或chol2inv(chol(m))替代solve(),不过一般记住solve函数就行
【未完待续,持续更新……】
r语言中矩阵QR分解_从零开始学R语言Day4|向量、矩阵和数组相关推荐
- c语言五子棋人机对弈算法_从零开始编写C语言五子棋程序1
从零开始编写C语言五子棋程序 C语言程序是国科大计算机系本科生必修课程,我选修的是武成岗老师的C语言课程.除了课上回答问题,实验课competitive programming的成绩之外,最终的大作业 ...
- 矩阵的QR分解c语言编程,[矩阵的QR分解系列五] Eigen中的QR分解
之前介绍的矩阵的三角分解系列介绍了利用矩阵初等变换解决了矩阵三角化问题以及具体的三角分解.但是以初等变换工具的三角分解方法并不能消除病态线性方程组不稳定问题,而且有时候对于可逆矩阵有可能也不存在三角分 ...
- Julia 矩阵QR分解和特征值
Julia 矩阵QR分解和特征值 前言 1. 施密特正交 (1) 利用施密特正交求出正交矩阵Q (2) 求出上三角矩阵R (3) 改进的消减QR分解 2. 完全QR分解 3. 矩阵QR分解的作用 (1 ...
- Python+numpy实现矩阵QR分解
感谢广东东软学院计算机系赵晨杰老师的交流. 如果实(复)非奇异矩阵A能够化成正交(酉)矩阵Q与实(复)非奇异上三角矩阵R的乘积,即A=QR,则称其为A的QR分解. Python扩展库numpy实现了矩 ...
- QR算法的Matlab 程序,三种实现矩阵QR分解的算法与程序
To learn, to share, to debate, then comes progress. ------------------------------------------------ ...
- 用Givens旋转进行矩阵QR分解
不多废话,直接贴代码 function [A_, T_, T] = my_qr_givens( A ) %利用givens旋转进行qr分解 %输出 %A_ 每次变换后的A矩阵 %T_ 对应于A_的变换 ...
- 从零开始学R(四)——常用命令:帮助,文件导入与导出与基本操作
R的常用命令 R的命令非常多,但是有一些命令是非常常用的,在这里我做一个汇总,便于大家使用.(Tips:关于下载和安装R的package以及工作目录的获得与设置命令在第二篇已经聊过,此时就不再赘述了, ...
- c语言打印%-6llu,从零开始学C语言
从零开始学C语言 @阆苑祁寒 写在前面:本文从一个初学者的角度,给出了对C语言的简单理解.如有谬误,敬请指出! Week1 1 #include 2 int main(void)3 {4 printf ...
- c语言中函数名可不可以由用户命名,C语言中变量名及函数名的命名规则与驼峰命名法...
在程序设计中,变量名.函数名.数组名等统称为标识 符.简单地说,标识符就是一个名字.除库函数的函数名由系统定义外,其余都由用户自定义.C语言规定,标识符只能由字母(a-z,A-Z).数字 (0-9). ...
最新文章
- 注解--python库--matplotlib
- 【机器学习】基于opencv实现目标检测,error LNK2001: unresolved external symbol public: virtual bool CvSVM::train...
- webstrom js 代码不高亮
- train,dev,test数据集作用
- python2.7中文有限制么_python2.7
- 电脑广告弹窗多?安利一下:程序员常用 7 款Chrome去广告插件
- 机器学习十大经典算法之随机森林
- Python使用装饰器和线程限制函数执行时间的方法
- 【oracle11g,17】存储结构: 段的类型,数据块(行连接、行迁移,块头),段的管理方式,高水位线...
- python语言入门-Python语言十分钟快速入门
- 区块链项目开发区块链应用场景需满足3个
- Eclipse- 使用记录(1)
- Eviews操作笔记自用(横截面数据)
- MarkdownPad2 的基本使用
- 关于Sklearn的SVM、XGBOOST、随机森林等算回归预测建模的方法及数据提取
- iOS开发,这样写简历才能获得大厂青睐
- SpringBoot中出现 No qualifying bean of type ‘com.tanhua.server.mapper.UserInfoMapper‘ available: expect
- 罗永浩放话要当带货一哥,意思是要超越李佳琦了?
- Python网页爬虫工具有哪些?
- html中输入框中“请输入关键字”的设置
热门文章
- 007_请求返回Json
- 042_CSS3字体
- 011_CSS子元素选择器
- 064_html音频
- java 等待_Java并发之等待/通知机制
- python 结构体数组 定义_一篇文章弄懂Python中所有数组数据类型
- suse linux enterprise desktop iso,SUSE Linux Enterprise Desktop 10
- 怎么用python画花瓣_怎么用python画花朵
- oracle执行代码权限,利用Oracle许可执行安全模式实现更好的控制
- 计算机语言E9,九种编程语言大对比