在java中替换更高维的矩阵元素

时间:2011-11-16 17:30:03

标签: java file matrix

矩阵中的替换元素存在问题。我在.txt文件中有一个矩阵3x3。我需要像这样替换矩阵元素:最后一个元素应该是第一个,倒数第二个应该是第二个,等等。有任何想法吗?

1 个答案:

答案 0 :(得分:5)

请记住:您可以将更高维度的数据投射到较低维度的数据上!一旦你意识到这一点,你就可以轻松地使用算法来反转一维阵列以反转二维阵列。

步骤:

1)将2D阵列转换为1D阵列。 2)反转1D阵列 3)将1D阵列反转内容写入新的2D阵列。

虽然这对于一个简单的3x3案例来说太过分了,但它很容易扩展以支持更复杂的案例 数组类型。

实施:

这个比较简单。任何2D矩阵都可以简单地表示为1D矩阵 索引和映射数组索引。例如:

[1 2 ; 3 4] 

可以表示为

int rowLength=2;
int[]data = [1, 2, 3, 4];

因此,您必须编写从2D数组到1D数组的映射,并且您必须编写如下方法:

int[] mapTo1DMatrix(int[][] array)
{
    final int elementsPerRow  = array[0].length; // find out the elements in a row, where all rows are same length. 

    for(int arrayRow =0; arrayRow < array.length; arrayRow++)
       for(int col =0; col < elementsPerRow; col ++)
            myOneD[i+arrayRow] = array[arrayRow,col];     

}