C ++从Matrix获取列向量

时间:2014-11-03 06:36:02

标签: c++ arrays matrix vector

我在我的代码

中定义了这样的矩阵
*matrix1 = new int[*matrix1rows * *matrix1columns];
*matrix2 = new int[*matrix2rows * *matrix2columns];

现在我需要将矩阵的列保存为单个向量以乘以两个矩阵。 例如,如果我有这样的矩阵:

1 2 3 4
5 6 7 8
9 1 2 3

我想获取矢量中的每一列,例如

1
5
9

我已经创建了一个循环来将行作为向量来获取但是现在我需要对列进行相同的操作但是我不知道如何做到这一点。

这是我获取行向量的循环。但是现在我需要得到matrix2的列向量,将它与matrix1的行向量相乘。我无法改变矩阵的定义。

for (int j = 0; j < matrix1rows; j++) {
  for (int i = 0; i < matrix1columns; i++) {
      printf("%i ", matrix1[(j * matrix1columns) + i]);
  }
}

如何通过循环获取矩阵的列?

1 个答案:

答案 0 :(得分:1)

将行标签与列标签交换,如下所示:

for (int i = 0; i < matrix1columns; i++) {
   for (int j = 0; j < matrix1rows; j++) {
      printf("%i ", matrix1[(j * matrix1columns) + i]);
  }
}