矩阵中的替换元素存在问题。我在.txt文件中有一个矩阵3x3。我需要像这样替换矩阵元素:最后一个元素应该是第一个,倒数第二个应该是第二个,等等。有任何想法吗?
答案 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];
}