gpt4 book ai didi

java - 'reshape' 的 MATLAB 函数是否在任何 Java 库中可用?

转载 作者:搜寻专家 更新时间:2023-11-01 03:14:25 26 4
gpt4 key购买 nike

我正在尝试在 Java 中使用 MATLAB 中可用的 reshape 函数的功能。 Java 中是否有可用的 reshape 实现?

最佳答案

我在 sun forums 上找到了这个(稍作修改) .

public class Test {

public static void main(String[] args) {
double[][] ori = new double[][] { {1,2,3}, {4,5,6}, {7,8,9}, {10,11,12} };
double[][] res = reshape(ori,2,6);

for(int i = 0;i<ori.length;i++){
for(int j = 0;j<ori[0].length;j++){
System.out.print(ori[i][j]+" ");
}
System.out.println("");
}
System.out.println("");
for(int i = 0;i<res.length;i++){
for(int j = 0;j<res[0].length;j++){
System.out.print(res[i][j]+" ");
}
System.out.println("");
}



}

public static double[][] reshape(double[][] A, int m, int n) {
int origM = A.length;
int origN = A[0].length;
if(origM*origN != m*n){
throw new IllegalArgumentException("New matrix must be of same area as matix A");
}
double[][] B = new double[m][n];
double[] A1D = new double[A.length * A[0].length];

int index = 0;
for(int i = 0;i<A.length;i++){
for(int j = 0;j<A[0].length;j++){
A1D[index++] = A[i][j];
}
}

index = 0;
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++){
B[j][i] = A1D[index++];
}

}
return B;
}
}

测试输出为

1.0 2.0 3.0 
4.0 5.0 6.0
7.0 8.0 9.0
10.0 11.0 12.0

1.0 3.0 5.0 7.0 9.0 11.0
2.0 4.0 6.0 8.0 10.0 12.0

关于java - 'reshape' 的 MATLAB 函数是否在任何 Java 库中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2877310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com