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
Codice 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); 
eseguendo queste tre funzioni in java, outInt8Array2 e outInt8Array3 non danno errori
mentre outInt8Array lancia la seguente eccezione
Codice PHP:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException0
    at basics
.useMyClass.getInt8s(useMyClass.java:139)
    
at basics.useMyClass.main(useMyClass.java:217
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 parametri

da Java le funzioni le richiamo in questo modo
Codice PHP:
    public static byte[] getInt8s() {
        
BasicTypesArray Class = null;
        
Object[] null;

        try {
            Class = new 
BasicTypesArray();
            
//y = Class.outInt8Array3(1, new Double((double) 5));
            
= Class.outInt8Array(0);
                        
            return (
byte[]) ((MWArrayy[0]).getData();
        }

        catch (
MWException e) {
            
System.err.println(e.getMessage());
        }

        finally {
            
MWArray.disposeArray(y);
            if (Class != 
null)
                Class.
dispose();
        }

        
byte[] ret = {};
        return 
ret;
    } 
qualche idea di come risolvere?