2016-02-15 1 views
0

J'essaie de convertir une matrice Matlab uint16 (taille: 1109 par 1024) en Java short[][] en utilisant la bibliothèque jmatio. Voici le code:Convertir une matrice Matlab uint16 en Java court [] [] en utilisant jmatio?

String name  = "array_re"; 
String fileName = "microsec.mat"; 
MatFileReader matfilereader = new MatFileReader(fileName); 
short[][] mlArrayShort = ((MLInt16) matfilereader.getMLArray(name 
         )).getArray(); 

Cependant, à la troisième ligne, je reçois l'erreur suivante:

"com.jmatio.io.MatlabIOException: Incorrect matlab array class: uint16".

Est-ce que quelqu'un sait comment résoudre ce problème?

+1

Avez-vous essayé d'enregistrer la matrice MATLAB en tant que 'int16' au lieu de' uint16'? Java ne peut pas gérer les types non signés. –

+0

Si vos données ont des valeurs supérieures à intmax ('int16') 'besoin d'utiliser' int32' ou de redimensionner vos données 'uint16' pour utiliser la plage négative, – horchler

+0

@ CST-Link. Merci de le saisir. –

Répondre

0

Merci beaucoup pour vos réponses. Oui, le problème était que Java ne gère pas les types de données non signés. J'ai converti la matrice de Matlab en signedint16 et l'ai lue en Java avec succès en utilisant le même code ci-dessus.