我在矩阵中有替换元素的问题.我在.txt文件中有一个矩阵3x3.我需要像这样替换矩阵元素:最后一个元素应该是第一个,倒数第二个应该是第二个,等等.有任何想法吗?
请记住:您总是可以将更高维度的数据投影到更低维度的数据上!一旦你意识到这一点,你可以轻松地使用该算法来反转一维阵列来反转二维阵列.
步骤 :
1)将2D阵列转换为1D阵列.2)反转1D阵列3)将1D阵列反转内容写入新的2D阵列.
虽然这对于简单的3x3情况来说太过分了,但它很容易扩展以支持更复杂的数组类型.
实施:
这个比较简单.通过简单地索引和映射数组索引,可以将任何2D矩阵表示为1D矩阵.例如 :
[1 2 ; 3 4]
Run Code Online (Sandbox Code Playgroud)
可以表达为
int rowLength=2;
int[]data = [1, 2, 3, 4];
Run Code Online (Sandbox Code Playgroud)
因此,您必须编写从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];
}
Run Code Online (Sandbox Code Playgroud)