【发布时间】:2014-08-02 11:23:18
【问题描述】:
我在一个 MATLAB 程序中有以下代码,它在 for 循环中创建三个 3 维数组,我试图在我的 JAVA 程序中复制它。
MATLAB代码如下:
for j = 1 : J
for k = 1 : K
A(j,:,k) = VariableA * ArrayB
B(j,:,k) = VariableA ./ ArrayB
AB(j,:,k) = A.*B
end
end
在 JAVA 中,我已经初始化了将通过代码使用的数组:
double [][][] A = new double [(int) (J)][(int) (N+1)][(int)(K)];
double [][][] B = new double [(int) (J)][(int) (N+1)][(int)(K)];
double [][][] AB = new double [(int) (J)][(int) (N+1)][(int)(K)];
请注意,在 MATLAB 和 JAVA 程序中,所有变量均在此部分代码之前定义。此外,VariableA 是一个定义的值,即 10,而 ArrayB 是一个一维行数组,即 [1 2 3 4 5 6 7]。
我在JAVA中创建A的代码(我对B和AB使用了同样的方法)是:
for (int j = 0; j < A.length; j++)
for ( int i = 0; i < A.length; i++)
for (int k = 0; k < A.length; k++)
A[j][i][k] = (ArrayB[j] * VariableA);
System.out.println(Arrays.deepToString(A));
然而,上面的代码只适用于前几个值。输出如下:
[[[2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]]]
任何帮助、想法或指针都将不胜感激,因为我不知道哪里出了问题,前 6 个值是整个预期的值,但数组也应该被分成单独的数组作为3-d 数组是数组的数组。
【问题讨论】:
标签: java arrays matlab for-loop multidimensional-array