1
Java에서 Matlab으로 매우 큰 3d 행렬을 내보낼 필요가 있습니다. 나는 작은 행렬에 대해 매우 잘 작동하지만 큰 행렬에 대해 분해하는 3d 행렬을 작성하기위한 클래스를 작성했습니다. 나는 큰 매트릭스 실행할 때 나는 다음과 같은 오류가Java에서 JMatio를 사용하여 매우 큰 행렬 내보내기
public class MLDouble3d extends MLDouble {
private final int i;
private final int j;
public MLDouble3d(String name, int[] dims) {
super(name, dims);
i=dims[0];
j=dims[1];
}
public void set(double value, int ii, int jj, int kk){
set(value, ii + jj * i + kk * i * j);
}
}
:
Exception in thread "main" java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:236)
at com.jmatio.types.MLNumericArray._set(MLNumericArray.java:269)
at com.jmatio.types.MLNumericArray.setReal(MLNumericArray.java:111)
at com.jmatio.types.MLNumericArray.set(MLNumericArray.java:215)
내가 MLSparse를 사용하여 시도했다, 그러나 3 차원 매트릭스를 만드는 데 사용할 수 없습니다 다음과 같이 코드는 이 방법.
나는 다음과 같은 옵션을 사용하여 가상 머신을 실행-Xms24000M -Xmx24000M -Xmn16000M -XX:TLABSize=1m -XX:-ResizeTLAB
내가 이중 [] [] [] 배열의 데이터에 맞게 수 있어요.
주위에 경로가 있습니까? 정수를 long으로 변경하는 것, 예를 들어? 아니면 다른 도서관일까요? –
나는 임의의 자바 라이브러리 (예 : hibernate, xml, 뭐든)를 사용하여 파일에 java'double [] [] []'을 저장하고 java를 통해 matlab에로드 할 것이다. 자바 코드는 matlab 커맨드 라인에서 직접 실행될 수 있습니다. – Daniel