R语言中两个数组(或向量)的外积如何计算

所谓数组(或向量)a和b的外积,指的是a的每一个元素和b的每一个元素搭配在一起相乘得到的新元素.当然运算规则也可自定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).例如:

> a <- 1:2
> b <- 3:5
> d <- a %o% b
> d
     [,1] [,2] [,3]
[1,]    3    4    5
[2,]    6    8   10

注意维数公式为:

dim(d) = c( dim(a) , dim(b) )

实际上R语言提供了一个更为一般化得外积函数outer(X,Y,Fun),比较简单,看个示例吧.

下面的例子是为了绘制 z = x**2 +50cos(y)的3维表面图:

> x <- seq(from = -5, to = 5, by = 0.25)
> y <- seq(from = -2, to = 2, by = 0.1)
> f <- function(x,y){x**2+50*cos(y)}
> z <- outer(x,y,f)
> persp(x,y,z)

绘制图像如下:

其它看帮助文档吧.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-30 10:19:58

R语言中两个数组(或向量)的外积如何计算的相关文章

R语言中两个数组(或向量)的外积怎样计算

所谓数组(或向量)a和b的外积,指的是a的每个元素和b的每个元素搭配在一起相乘得到的新元素.当然运算规则也可自己定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).比如: > a <- 1:2 > b <- 3:5 > d <- a %o% b > d [,1] [,2] [,3] [1,] 3 4 5 [2,] 6 8 10 注意维数公式为: dim(d) = c( dim(a) , dim(b) ) 实际上R语言提供了一个更为一般化得外积函数o

R语言中最简单的向量赋值方法

R语言中最简单的向量赋值方法简介: 1. 生成等差数列的向量x x <- 1:10 #将x向量赋值为1 2 3 4 5 6 7 8 9 10 结果为 > x [1] 1 2 3 4 5 6 7 8 9 10 2. 将x的值全部修改成0 x[] <- 0 #非常简洁的赋值方法,建议使用 x[1:length(x)] <- 0 #不建议使用的赋值方法 结果为: > x[] <- 0 > x [1] 0 0 0 0 0 0 0 0 0 0 3.使用seq函数 x <

【译文】怎样在R语言中使用SQL命令

[译文]怎样在R语言中使用SQL命令 作者 Fisseha Berhane 对于有SQL背景的R语言学习者而言.sqldf是一个很实用的包,由于它使我们能在R中使用SQL命令.仅仅要掌握了主要的SQL技术.我们就能利用它们在R中操作数据框.关于sqldf包的很多其它信息,能够參看cran. 在这篇文章中,我们将展示怎样在R中利用SQL命令来连接.检索.排序和筛选数据. 我们也将展示怎么利用R语言的函数来实现这些功能.近期我在处理一些FDA(译者注:食品及药物管理局)的不良事件数据.这些数据很混乱

R语言中数据结构

R语言还是有点古老感觉,数据结构没有Python中那么好用,下面简单总结一下R语言中常用的几个数据结构. 向量: R中的向量可以理解为一维的数组,每个元素的mode必须相同,可以用c(x:y)进行创建,如x <- c(1:9). 矩阵: R中的矩阵可以理解为二维数组,每一个元素必须要有相同的mode,使用matrix进行创建,matrix的形式为: matrix(vector, nrow=number_of_rows, ncol=number_of_columns, byrow=logical_

C语言中指针和数组

C语言数组与指针的那些事儿 在C语言中,要说到哪一部分最难搞,首当其冲就是指针,指针永远是个让人又爱又恨的东西,用好了可以事半功倍,用不好,就会有改不完的bug和通不完的宵.但是程序员一般都有一种迷之自信,总认为自己是天选之人,明知山有虎,偏向虎山行,直到最后用C的人都要被指针虐一遍. 指针 首先,明确一个概念,指针是什么,一旦提到这个老生常谈且富有争议性的话题,那真是1000个人有1000种看法. 在国内的很多教材中,给出的定义一般就是"指针就是地址",从初步理解指针的角度来说,这种

R语言中的并行计算——搭建R的集群

转载:http://blog.sina.com.cn/s/blog_83bb57b70101qeys.html 一直纠结于R的大数据计算问题,希望可以找到一个彻底的方案解决它.而云服务器当然是解决这个问题的最佳方案,所以,至少从这方面入手. R的云服务器部署有两种解决方案,一种是使用R语言的并行计算,另外一种是使用RHadoop框架. RHadoop框架其实就是M / R 算法的R语言实现,需要使用者有M / R的计算基础,和R语言平常使用的计算方式有很大的不同,因此,我采用的解决方案是搭建R

C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)

目录 00 简介 01 算法概述 02 公用方法 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存的忙闲状态,为进程分配和释放内存.当主存的空间太小而无法装入所有的进程时,就需要在内存和硬盘之间进行调度操作. 多数操作系统只采用某种特定的页面置换算法进行置换,无法预先探测当前运行进程的页面访问模式,因此不能根据不同的页面访问模式,选用不同的页面置换算法.当然,如果能对不同的访问模式选取相应的页面置换算法,

关于“C语言中的字符数组和字符串”一些需要注意的基础点

在C语言中,没有类似Java的String类对字符串的处理,字符串的包装可以采用字符数组. 先看字符数组: #include<stdio.h> void main() { char array[] = {'a','b','c'}; int str = sizeof(array)/sizeof(char); printf("%d",str); } 此时的输出结果为:3,即字符数组的长度为3. 下面我们用字符串初始化字符数组,代码如下. #include<stdio.h&

R语言中批量安装软件包

R是一种开源软件,在编程的时候,需要安装很多软件包,如果一个一个的安装,那将费时费力.由于R支持脚本语言,所以考虑用.R文件存放所有要用的软件包,比如MASS.lpSolve.arules等,然后运行这个.R文件,就可以进行批量安装了. 1. 首先,将R语言中的软件包,按照它们的依存关系,保存在一个.R文件中,比如lib2D.R //lib2D.R install.packages("MASS") install.packages("lpSolve") instal