Java 将阵列插入到二维阵列
我正在尝试将一些结果数组插入到二维数组中。但在最后,我只得到了所有的2d数组,以及我插入到2d数组中的最后一个数组集。当我调试和检查代码时,我发现每次我做这个动作时,Java 将阵列插入到二维阵列,java,arrays,Java,Arrays,我正在尝试将一些结果数组插入到二维数组中。但在最后,我只得到了所有的2d数组,以及我插入到2d数组中的最后一个数组集。当我调试和检查代码时,我发现每次我做这个动作时,bmma[il]=numberbmma数组的所有数组随新赋值而变化 下面是我实现的完整代码 double[][] newDATA ; double [][] bmma = new double[100][]; double [] number = new double[12]; int il=0; String fname =
bmma[il]=number代码>bmma数组的所有数组随新赋值而变化
下面是我实现的完整代码
double[][] newDATA ;
double [][] bmma = new double[100][];
double [] number = new double[12];
int il=0;
String fname = "newAudio.wav";
RawAudioFileStream rawAudio = new RawAudioFileStream(fname);
StreamHeader mh = mfccm.init(rawAudio.getHeader());
MatrixFileStream out = new MatrixFileStream(fname + ".txt", true);
out.setMultiLine(true);
out.setHeader(mh);
while (true) {
StreamFrame f = mfccm.process(rawAudio.recvFrame());
if (f == null) {
break;
}
if(((MatrixHeader.MatrixFrame)f).data != null){
for (int i=0;i<12;i++){
newDATA=((MatrixHeader.MatrixFrame)f).data;
number[i]=newDATA[i][0];
}
bmma[il]=number;
il++;
}
double[][]新数据;
双精度[]bmma=新双精度[100][];
double[]编号=新的double[12];
int-il=0;
字符串fname=“newAudio.wav”;
RawAudioFileStream rawAudio=新的RawAudioFileStream(fname);
StreamHeader mh=mfccm.init(rawAudio.getHeader());
MatrixFileStream out=新的MatrixFileStream(fname+“.txt”,true);
out.setMultiLine(true);
out.setHeader(mh);
while(true){
StreamFrame f=mfccm.process(rawAudio.recvFrame());
如果(f==null){
打破
}
if(((MatrixHeader.MatrixFrame)f).data!=null){
对于(int i=0;i您只有一个数组分配给number
(您在此处实例化的数组-double[]number=new double[12];
),并且您将此数组多次分配给bmma
二维数组,因此二维数组的所有行都将相同
应为二维阵列的每一行创建一个新阵列:
number = new double[12];
for (int i=0;i<12;i++){
newDATA=((MatrixHeader.MatrixFrame)f).data;
number[i]=newDATA[i][0];
}
bmma[il]=number;
number=新的双精度[12];
对于(int i=0;我甚至意识不到我犯了一个简单的错误:)非常感谢你的帮助。在一个沉重的最后期限上工作,无话可说。