标签: matrix

将函数应用于矩阵或数据框的每一行

假设我有一个by 2矩阵和一个函数,它将一个2向量作为其参数之一.我想将函数应用于矩阵的每一行并得到一个n向量.在R中如何做到这一点?

例如,我想在三个点上计算2D标准正态分布的密度:

bivariate.density(x = c(0, 0), mu = c(0, 0), sigma = c(1, 1), rho = 0){
    exp(-1/(2*(1-rho^2))*(x[1]^2/sigma[1]^2+x[2]^2/sigma[2]^2-2*rho*x[1]*x[2]/(sigma[1]*sigma[2]))) * 1/(2*pi*sigma[1]*sigma[2]*sqrt(1-rho^2))
}

out <- rbind(c(1, 2), c(3, 4), c(5, 6))
Run Code Online (Sandbox Code Playgroud)

如何将功能应用到每一行out

如何以指定的方式将除了点之外的其他参数的值传递给函数?

r function matrix apply sapply

114
推荐指数
5
解决办法
22万
查看次数

如何在MATLAB中将函数应用于矩阵的每一行/列?

例如,v + 1您可以通过说,或者您可以使用该函数,将函数应用于向量中的每个项目arrayfun.如何在不使用for循环的情况下为矩阵的每一行/列执行此操作?

matlab function matrix vectorization

103
推荐指数
6
解决办法
10万
查看次数

将矩阵转换为1维数组

我有一个矩阵(32X48).

如何将矩阵转换为单维数组?

arrays r matrix

102
推荐指数
8
解决办法
20万
查看次数

如何从R中的向量列表中创建矩阵?

目标:从相等长度的向量列表中,创建一个矩阵,其中每个向量成为一行.

例:

> a <- list()
> for (i in 1:10) a[[i]] <- c(i,1:5)
> a
[[1]]
[1] 1 1 2 3 4 5

[[2]]
[1] 2 1 2 3 4 5

[[3]]
[1] 3 1 2 3 4 5

[[4]]
[1] 4 1 2 3 4 5

[[5]]
[1] 5 1 2 3 4 5

[[6]]
[1] 6 1 2 3 4 5

[[7]]
[1] 7 1 2 3 4 5

[[8]]
[1] 8 1 2 3 4 5 …
Run Code Online (Sandbox Code Playgroud)

r vector matrix

100
推荐指数
5
解决办法
11万
查看次数

为什么四元数用于旋转?

我是一名物理学家,并且一直在学习一些编程,并且遇到很多人使用四元数进行旋转而不是以矩阵/向量形式编写东西.

在物理学中,有很好的理由我们不使用四元数(尽管偶尔讲述汉密尔顿/吉布斯/等的奇怪故事).物理学要求我们的描述具有良好的分析行为(这具有精确定义的含义,但是在一些相当技术的方面远远超出了正常介绍类中教导的内容,所以我不会详细讨论).事实证明,四元数没有这种好的行为,所以它们没用,而矢量/矩阵也没用,所以我们使用它们.

然而,仅限于刚性旋转和不使用任何分析结构的描述,可以以任一方式(或其他一些方式)等效地描述3D旋转.

一般情况下,我们只是想要一个点X =(X,Y,Z)的映射到一个新的点X '=(X',Y",Z ')受约束X 2 = X' 2.并且有很多事情可以做到这一点.

天真的方法是只绘制这个定义的三角形并使用三角学,或者使用点(x,y,z)和向量(x,y,z)和函数f(X)= X'之间的同构,使用一些其他方法(x,y,z)T(a,b,c)(x',y',一个矩阵MX = X',或使用四元数,或沿旧方法投射旧矢量的分量. z')等

从数学的角度来看,这些描述在这个设置中都是等价的(作为一个定理).它们都具有相同数量的自由度,相同数量的约束等.

那么为什么四元数似乎比矢量更受欢迎呢?

我看到的通常原因是没有云台锁或数字问题.

没有万向节锁定论证似乎很奇怪,因为这只是欧拉角的问题.它也只是一个坐标问题(就像极坐标中r = 0处的奇点(Jacobian松散等级)),这意味着它只是一个局部问题,并且可以通过切换坐标,旋转出简并性来解决,或使用两个重叠的坐标系.

我对数字问题不太确定,因为我不清楚这些(以及任何替代方案)是如何实现的.我已经读过,对四元数进行重新规范化比对旋转矩阵进行重新规范化更容易,但这只适用于一般矩阵; 一个旋转具有额外的约束,使得这些约束变得无足轻重(这些约束被内置到四元数的定义中)(事实上,这必须是真的,因为它们具有相同数量的自由度).

那么使用四元数而不是向量或其他替代方法的原因是什么?

3d matrix quaternions rotational-matrices

99
推荐指数
8
解决办法
3万
查看次数

在numpy中将1D数组转换为2D数组

我想通过指定2D数组中的列数将1维数组转换为2维数组.有点像这样的东西:

> import numpy as np
> A = np.array([1,2,3,4,5,6])
> B = vec2matrix(A,ncol=2)
> B
array([[1, 2],
       [3, 4],
       [5, 6]])
Run Code Online (Sandbox Code Playgroud)

numpy有没有像我的功能"vec2matrix"那样工作的功能?(我知道你可以像二维数组一样索引一维数组,但这不是我所拥有的代码中的一个选项 - 我需要进行这种转换.)

python arrays numpy matrix multidimensional-array

93
推荐指数
5
解决办法
21万
查看次数

如何在R中创建相关矩阵?

我有92组相同类型的数据.

我想为任意两种组合制作相关矩阵.

即我想要一个92 x92的矩阵.

元素(ci,cj)应该是ci和cj之间的相关性.

我怎么做?

visualization r matrix correlation

84
推荐指数
4
解决办法
20万
查看次数

Android:如何在中心点上旋转位图

我一直在寻找解决这个问题的一天,但没有任何帮助,甚至这里的答案.文档也没有解释任何内容.

我只是想在另一个物体的方向上进行旋转.问题是位图不是围绕固定点旋转,而是围绕位图(0,0)旋转.

这是我遇到麻烦的代码:

  Matrix mtx = new Matrix();
  mtx.reset();
  mtx.preTranslate(-centerX, -centerY);
  mtx.setRotate((float)direction, -centerX, -centerY);
  mtx.postTranslate(pivotX, pivotY);
  Bitmap rotatedBMP = Bitmap.createBitmap(bitmap, 0, 0, spriteWidth, spriteHeight, mtx, true);
  this.bitmap = rotatedBMP;
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如何更改pre/ postTranslate()和float参数中的值并不重要setRotation().有人可以帮助并推动我朝着正确的方向前进吗?:)

android center bitmap matrix image-rotation

83
推荐指数
5
解决办法
13万
查看次数

使用Python和NumPy的非常大的矩阵

NumPy是一个非常有用的库,从使用它我发现它能够轻松处理相当大(10000 x 10000)的矩阵,但开始与更大的任何东西挣扎(试图创建一个50000 x 50000的矩阵)失败).显然,这是因为大量的内存需求.

有没有办法在某种程度上在NumPy中创建巨大的矩阵(比如100万乘100万)(没有几TB的RAM)?

python numpy matrix

82
推荐指数
8
解决办法
9万
查看次数

如何在MATLAB中迭代n维矩阵中的每个元素?

我有个问题.我需要在MATLAB中遍历n维矩阵中的每个元素.问题是,我不知道如何为任意数量的维度做这件事.我知道我可以说

for i = 1:size(m,1)
    for j = 1:size(m,2)
        for k = 1:size(m,3)
Run Code Online (Sandbox Code Playgroud)

等等,但有没有办法为任意数量的维度做到这一点?

arrays iteration matlab matrix multidimensional-array

80
推荐指数
4
解决办法
32万
查看次数