0

如何在不使用任何循环的情况下转置矩阵。如果它是 nxn,我们可以将对角线作为基元素和移位元素。但是对于 nxm 矩阵,我认为这个解决方案是不可行的。

无论如何,要读取或存储我们需要使用循环对...??

没有循环的任何解决方案..??

4

2 回答 2

0

如果您在一开始就知道矩阵的维度,那么您将不需要任何循环。因为您只需交换矩阵位置即可整体转置矩阵。在第一个条件下,即使维度是 mx n,您也不需要循环。

但是如果你一开始不知道矩阵的维数,那么在转置矩阵的过程中,我们肯定需要循环迭代矩阵以读取某个位置并交换到其他位置。

于 2013-01-21T03:03:45.297 回答
0

为了存储整个转置矩阵,您肯定需要使用循环。这并不是什么大问题,因为存储矩阵无论如何都使用循环,因为您需要遍历矩阵的成员来存储它。

如果您只是阅读它,则可以使用矩阵转置的定义并仅转换索引。例如,在 C 中:

int getTransposedElement(int i,int j, int** originalMatrix) {
  return originalMatrix[j,i];
}

如果您使用具有类和多态性的语言,则可以创建一个新的矩阵类来自动执行此操作。这样做的另一个好处是它避免了复制原始矩阵,从而节省了内存并允许对转置矩阵的更改反映在原始矩阵中。

于 2013-01-21T03:04:55.440 回答