importjava.util.Arrays;publicclassMatrix{booleanisReshapable(intlength,introw,intcol){if(length<0||row<0||col<0){returnfalse;}if(length==0){if(row==0&&col==0){returntrue;...
import java.util.Arrays;
public class Matrix
{
boolean isReshapable(int length, int row, int col)
{
if (length < 0 || row < 0 || col < 0)
{
return false;
}
if (length == 0)
{
if (row == 0 && col == 0)
{
return true;
}
else
{
return false;
}
}
if (length == row * col)
{
return true;
}
return false;
}
int[][] reshape(int[] vector, int row, int col)
{
if (vector == null) {
return null;
}
if (isReshapable(vector.length, row, col))
{
int[][] vectors = new int[row][col];
for (int i = 0; i < row; i++)
{
vectors [i] = new int[col];
for (int j = 0; j < col; j++)
{
vectors[i][j] = vector[i * col + j];
}
}
return vectors;
}
return null;
}
public static void main(String[] args)
{
Matrix m = new Matrix();
int[] vector = new int[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
System.out.println(Arrays.deepToString(m.reshape(vector, 6, 2)));
}
}
在上面代码中加入这个方法void writeMatrix(String filename, int[][] matrix) : 写一个matrix到特定的文件夹,形式如下:
row1col1,row1col2,row1col3
row2col1,row2col2,row2col3
m.writeMatrix("matrix.txt", new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
展开