我试图在Matlab中存储用Java制作的三维数组,但是我的一些错误导致存储重复数据,即第一维数据也在其他维度上复制。
我为此目的使用JMatIO库
Java代码
int[] dims = {Xtimeseries.length,Xtimeseries[0].length,Xtimeseries[0][0].length};
MLDouble Xtimeseriesmat = new MLDouble("Xtimeseries", dims);
for(int i = 0 ; i < dims[0]; i++)
for(int j = 0 ; j < dims[1] ; j++)
for(int k = 0 ; k < dims[2] ; k++){
Xtimeseriesmat.set(Xtimeseries[i][j][k],i,j + k*dims[1]);
}
这里Xtimeseries是double [] [] []
然而,当我在Matlab中加载此矩阵时,我得到以下内容
Xtimeseries(1,1,1:3)
ans(:,:,1) =
3.9308e+03
ans(:,:,2) =
4.1297e+03
ans(:,:,3) =
3.9985e+03
Xtimeseries(2,1,1:3)
ans(:,:,1) =
3.9308e+03
ans(:,:,2) =
4.1297e+03
ans(:,:,3) =
3.9985e+03
在MLDouble中存储数组时我犯了什么错误?