ciao,
ho dei file funzione (*.m) esportati da matlab in un jar. importo il jar nel progetto java e tutto ok.
visto che tutti gli output delle funzioni matlab in java (utilizzando il jabuilder) sono Object[] stavo cercando di creare una classe intermedia per convertire i risultati in un formato leggibile.
ho qualche problema con l'output di stringhe e di array (che probabilmente vengono gestiti nello stesso modo in quanto le stringhe sono array di caratteri)
allora in matlab ho creato queste funzioni
eseguendo queste tre funzioni in java, outInt8Array2 e outInt8Array3 non danno erroriCodice PHP:%#quella che vorrei usare
function out = outInt8Array
out = 1:5;
out = int8(out);
%#altra versione con parentesi ma che da comunque errore
function out = outInt8Array()
out = 1:5;
out = int8(out);
%#versione con passaggio di parametro
function out = outInt8Array2(n)
out = 1:n;
out = int8(out);
%#versione con passaggio di parametro inutile ma che non da errore
function out = outInt8Array3(n)
out = 1:5;
out = int8(out);
mentre outInt8Array lancia la seguente eccezione
quindi da quanto ottengo credo che sia il passaggio di parametri a dare errore (visto che le funzioni sono uguali tranne che per la presenza o no dei parametriCodice PHP:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at basics.useMyClass.getInt8s(useMyClass.java:139)
at basics.useMyClass.main(useMyClass.java:217)
da Java le funzioni le richiamo in questo modo
qualche idea di come risolvere?Codice PHP:public static byte[] getInt8s() {
BasicTypesArray Class = null;
Object[] y = null;
try {
Class = new BasicTypesArray();
//y = Class.outInt8Array3(1, new Double((double) 5));
y = Class.outInt8Array(0);
return (byte[]) ((MWArray) y[0]).getData();
}
catch (MWException e) {
System.err.println(e.getMessage());
}
finally {
MWArray.disposeArray(y);
if (Class != null)
Class.dispose();
}
byte[] ret = {};
return ret;
}

Rispondi quotando