我知道二维数组是由数组组成的。要获取一行,可以这样做:
rowArray = my2Darray[row]
由于每行的大小可能不同,我假设没有内置方法可以从二维数组中获取列。这让我相信你需要像这样做:
for(int row = 0; row < numRows; row++)
{
colArray[row] = m2Darray[row][columnOfInterest];
}
这个是否正确?这是唯一的方法吗?
我知道二维数组是由数组组成的。要获取一行,可以这样做:
rowArray = my2Darray[row]
由于每行的大小可能不同,我假设没有内置方法可以从二维数组中获取列。这让我相信你需要像这样做:
for(int row = 0; row < numRows; row++)
{
colArray[row] = m2Darray[row][columnOfInterest];
}
这个是否正确?这是唯一的方法吗?
Commons Math有一些工具可能会对您有帮助:
double[][] data = new double[10][10];
BigMatrix matrix = MatrixUtils.createBigMatrix(data);
matrix.getColumnAsDoubleArray(0);
你的方法是正确的。但是,如果你需要多次这样做,我建议将其存储在列中。(或者两种方法都可以)
实际上,我本来会把这写成评论的,但是我的声望还不够高,所以我只能回答:
你的意思是猜测:
for(int row = 0; row < numRows; row++)
{
colArray[row] = m2Darray[row][columnOfInterest];
}
顺便说一下:我想你是正确的。没有更简单的方法。
/**
input data
**/
int[][] r = {
{1, 2},
{3, 4}
};
//the colum index
int colIndex = 1;
Integer[] col = Arrays.stream(r).stream().map(arr -> arr[colIndex]).toArray(size -> new Integer[size]);
//col data
for (Integer integer : col) {
System.out.println(integer);
}
int[][] array = new int[rows][coloumn];
for (int i = 0 ; i < array.length ; i++) {
for (int j = 0 ; j < array[].length; j++) {
int col = array[j][i];
}
}
实际上,Apache Commons的最新版本(3.5)没有BigMatrix类。相反,我们可以使用RealMatrix。
double[][] data = new double[10][10];
RealMatrix rm = new Array2DRowRealMatrix(data);
rm.getColumn(i);
希望这能帮到你...
StringBuilder s=new StringBuilder();
for(int i=0;i<n;i++)
s.append(arr[i][column]);
刚好偶然看到这篇文章。在列数组上执行诸如数组复制或操作的另一种方法是转置您的数组/矩阵。
简而言之
这种方法已经被用于缝合雕刻-图像裁剪技术。
colArray[row] = m2Darray[row][columnOfInterest];
呢? - ChssPly76