标签: matrix

将3D矩阵与2D矩阵相乘

假设我有一个AxBxC矩阵X 和一个BxD矩阵Y.

是否有一种非循环方法,通过它我可以将每个C AxB矩阵与Y

matlab matrix vectorization matrix-multiplication

25
推荐指数
4
解决办法
2万
查看次数

C++矩阵类

在C中,如果我想创建一个矩阵结构,我会使用:

struct matrix {
  int col, row;
  double data[1]; // I want the matrix entries stored
                  // right after this struct
}
Run Code Online (Sandbox Code Playgroud)

然后我可以分配它

matrix* allocate_matrix(int row, int col) {
  matrix* m = malloc(sizeof(matrix) + sizeof(double) * (row * col - 1));
  m->row = row; m->col = col;
  return m;
}
Run Code Online (Sandbox Code Playgroud)

现在我在C++中做等效吗?

编辑:

我想知道在C++中实现矩阵类的方法.

c++ matrix

25
推荐指数
5
解决办法
10万
查看次数

25
推荐指数
3
解决办法
11万
查看次数

在javascript中使用矩阵的列(换位)交换行

例如,我有一个像这样的矩阵:

|1 2 3|    
|4 5 6|
|7 8 9|
Run Code Online (Sandbox Code Playgroud)

我需要它转换成这样的矩阵:

|1 4 7|    
|2 5 8|
|3 6 9|
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳和最佳方式是什么?

javascript swap matrix multidimensional-array

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

更改矩阵/数据框中的行顺序

我需要更改/反转数据框中的行,而不是转置数据,而是将底行移到顶部,依此类推.如果数据框是:

1 2 3 
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)

我需要转换为

7 8 9
4 5 6
1 2 3
Run Code Online (Sandbox Code Playgroud)

我读过sort()但我不认为这是我需要的,或者我无法找到方法.

r matrix dataframe

25
推荐指数
4
解决办法
3万
查看次数

Python:调整现有数组的大小并填充零

我认为我的问题应该很简单,但我无法在互联网上找到任何帮助.我是Python的新手,所以我可能会遗漏一些非常明显的东西.

我有一个数组,S,就像这样[x x x] (one-dimensional).我现在创建一个对角矩阵,sigmanp.diag(S)-到目前为止,那么好.现在,我想调整这个新的对角线数组的大小,以便我可以将它乘以我拥有的另一个数组.

import numpy as np
...
shape = np.shape((6, 6)) #This will be some pre-determined size
sigma = np.diag(S) #diagonalise the matrix - this works
my_sigma = sigma.resize(shape) #Resize the matrix and fill with zeros - returns "None" - why?
Run Code Online (Sandbox Code Playgroud)

但是,当我打印出内容时my_sigma,我明白了"None".有人可以指出我正确的方向,因为我无法想象这应该是如此复杂.

在此先感谢您的帮助!

卡斯帕

图形:

我有这个:

[x x x]
Run Code Online (Sandbox Code Playgroud)

我要这个:

[x 0 0]
[0 x 0]
[0 0 x]
[0 0 0]
[0 0 0]
[0 0 …
Run Code Online (Sandbox Code Playgroud)

python arrays resize numpy matrix

25
推荐指数
3
解决办法
5万
查看次数

cv :: Matx的优点

我注意到新的OpenCV版本中添加了一个新的数据结构cv :: Matx,用于编译时已知大小的小矩阵,例如

cv::Matx31f  // matrix 3x1 of float type
Run Code Online (Sandbox Code Playgroud)

检查文档我看到大多数矩阵操作都可用,但我仍然没有看到使用这种新类型而不是旧的cv :: Mat的优点.

什么时候应该使用Matx代替Mat?

opencv matrix

25
推荐指数
4
解决办法
7270
查看次数

为什么通过浮点矩阵乘法执行浮点比使用int int更快?

有两个int矩阵A和B,超过1000行和10K列,我经常需要将它们转换为float矩阵以获得加速(4x或更多).

我想知道为什么会这样?我意识到有许多优化和矢量化,如AVX等,继续浮点矩阵乘法.但是,对于整数(如果我没有记错的话),有指令如AVX2.并且,不能使用SSE和AVX作为整数?

为什么在矩阵代数库(如Numpy或Eigen)下面没有启发式来捕获它并像浮点一样更快地执行整数矩阵乘法?

关于已接受的答案:虽然@ sascha的答案非常有用且相关,@ chatz的答案是int乘以int的实际原因,无论是否存在BLAS整数矩阵运算.

c++ numpy matrix eigen

25
推荐指数
2
解决办法
1814
查看次数

为什么我的翻译矩阵需要转置?

我正在使用OpenGL开发一个小型图形引擎,我的翻译矩阵存在一些问题.我正在使用OpenGL 3.3,GLSL和C++.情况是这样的:我已经定义了一个我想在屏幕上呈现的小立方体.立方体使用它自己的坐标系,所以我创建了一个模型矩阵来转换立方体.为了让自己更容易一点,我开始只使用一个平移矩阵作为立方体的模型矩阵,经过一些编码后,我设法使一切正常,立方体出现在屏幕上.没有什么特别的,但我的翻译矩阵有一点我发现有点奇怪.

据我所知,翻译矩阵的定义如下:

1, 0, 0, x
0, 1, 0, y
0, 0, 1, z
0, 0, 0, 1
Run Code Online (Sandbox Code Playgroud)

但是,这对我不起作用.当我以这种方式定义翻译矩阵时,屏幕上不会显示任何内容.它只在我定义我的翻译矩阵时才有效:

1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
x, y, z, 1
Run Code Online (Sandbox Code Playgroud)

现在我已经多次查看我的代码了解为什么会出现这种情况,但我似乎无法找出原因,或者我只是错了,是否需要像上面的转置矩阵那样定义转换矩阵?

我的矩阵定义为从左到右,从上到下的一维数组.

以下是我的一些代码可能会有所帮助:

//this is called just before cube is being rendered
void DisplayObject::updateMatrices()
{
    modelMatrix = identityMatrix();
    modelMatrix = modelMatrix * translateMatrix( xPos, yPos, zPos );

    /* update modelview-projection matrix */
    mvpMatrix = modelMatrix * (*projMatrix);
}

//this creates my translation matrix which …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl matrix linear-algebra

24
推荐指数
1
解决办法
1万
查看次数

列表清单的总和; 返回总和列表

data = [[3,7,2],[1,4,5],[9,8,7]]

假设我想对列表中每个列表的索引的元素求和,比如在矩阵列中添加数字以获得单个列表.我假设数据中的所有列表长度相等.

    print foo(data)

   [[3,7,2],
    [1,4,5],
    [9,8,7]]
    _______
 >>>[13,19,14]
Run Code Online (Sandbox Code Playgroud)

如何迭代列表列表而不会使索引超出范围错误?也许lambda?谢谢!

python sum list matrix

24
推荐指数
3
解决办法
5万
查看次数