안녕하세요 배열에 약간의 문제가 있습니다. 나는 여러 개의 작은에 큰 배열을 공유하고, 내가 ArrayList를 배열을 더 얻을 함수에 전달할 필요가배열과 코드가 작동하지 않습니다 (arraylist의 다중 배열)
의 ArrayList에 추가하고, 여기
int frame_size = 410;
int frame_shift = 320;
ArrayList<double[]> frames = new ArrayList<double[]>();
for (int i = 0; i + frame_size < inbuf.length; i = i + frame_shift) {
double[] frame = new double[frame_size];
System.arraycopy(inbuf, i, frame, 0, frame_size);
frames.add(frame);
}
: 여기
코드입니다int[] Cover = new int[frames.size() * nParam];
for (int i = 0; i < frames.size(); i++) {
double[] finMc = Gos.getVek(frames.get(i));
for (int c = 0; c < finMc.length; c++) {
int mc = (int) finMc[c];
for (int m = 0; m < Cover.length; m++) {
Cover[m] = mc;
}
}
}
이 모든 코드가 작동하지 않습니다 (
: 다음 일 처리 배열을 답을 받아 조립
배열의 모든 요소는 0입니다.
Сover[0] = 0
Cover[1] = 0
Cover[2] = 0
...
도움이 문제를하십시오 해결!)
이는 업데이트
int frame_size = 410;
int frame_shift = 320;
ArrayList<double[]> frames = new ArrayList<double[]>();
for (int i = 0; i + frame_size < inbuf.length; i = i + frame_shift) {
double[] frame = new double[frame_size];
System.arraycopy(inbuf, i, frame, 0, frame_size);
frames.add(frame);
}
int[] Cover = new int[frames.size() * nParam];
for (int i = 0; i < frames.size(); i++) {
double[] finMc = Gos.getVek(frames.get(i));
for (int c = 0; c < finMc.length; c++) {
int mc = (int) finMc[c];
Cover[i * frames.size() + c] = (int) finMc[c];
}
}
코드 (
업데이트 2를 작동하지 ^) 사전에 감사합니다
double[] inbuf = new double[Size];
inbuf = toDoubleArray(Gos.data);
inbuf[2] = 10;
inbuf[4] = 14;
toDoubleArray
public static double[] toDoubleArray(byte[] byteArray) {
int times = Double.SIZE/Byte.SIZE;
double[] doubles = new double[byteArray.length/times];
for (int i = 0; i < doubles.length; i++) {
doubles[i] = ByteBuffer.wrap(byteArray, i * times, times)
.getDouble();
}
return doubles;
}
코드는 작동하지 :
이int frame_size = 410;
int frame_shift = 320;
ArrayList<double[]> frames = new ArrayList<double[]>();
for (int i = 0; i + frame_size < inbuf.length; i = i + frame_shift) {
double[] frame = new double[frame_size];
System.arraycopy(inbuf, i, frame, 0, frame_size);
frames.add(frame);
}
double[] Cover = new double[frames.size() * nParam];
for (int i = 0; i < frames.size(); i++) {
double[] finMc = Gos.getVek(frames.get(i));
for (int c = 0; c < finMc.length; c++) {
Cover[i * frames.size() + c] = finMc[c];
}
}
이 발생하는 어떤 문제 :이 이런 식으로 쓰여 경우
그래서 합계에서, 코드는 좀 더 잘 작동 하는가? "이 코드가 모두 작동하지 않음"이란 의미는 무엇입니까? – CPerkins배열의 모든 요소를 썼습니다. 커버가 없습니다. 그 이유는 arraylist가 번호에서 뽑히지 않은 이유입니다. – user3384347
그럼 배열 커버를 사용해야하고 그는 여전히 0을내어 놓습니다. – user3384347