2012-05-08 22 views
5

estoy bastante nuevo en la programación MATLAB y me encontré con algunos problemas:MATLAB: Java String [] conversión

Quiero llamar a una función libriary dSPACE MLIB. Según sus muestras, requiere un conjunto de cadenas como argumento:

variables = {'Model Root/Spring-Mass-Damper System/Out1';... 
     'Model Root/Signal\nGenerator/Out1'}; 

libFunction(variables); 

Estas variables se pasan a la función. Mi problema es ahora: tengo una aplicación frontend donde el usuario puede elegir entre un número arbitrario de cadenas que deben pasarse a la función matlab. Como la interfaz está escrita en Java, el tipo de datos entrantes es java.lang.String []. ¿Cómo puedo convertir una matriz de cadenas java en algo con el mismo tipo que la variable de muestra anterior (creo que es una matriz de celdas de celdas o algo así).

¡Gracias de antemano!

Respuesta

6

Eche un vistazo a la documentación. MATLAB hace que sea muy fácil convertir ay desde tipos de Java.

  1. Handling data returned from Java
  2. Dealing with Java arrays

Puede convertir una matriz de cadenas de Java a cualquiera de una serie de células o carbón en MATLAB. El uso de arreglos de celdas puede funcionar incluso con matrices dentadas (que están permitidas en Java).

Éstos son dos ejemplos simples:

%# Preparing a java.lang.String[] to play with. 
a = javaArray('java.lang.String',10); 
b = {'I','am','the','very','model','of','a','modern','major','general'}; 
for i=1:10; a(i) = java.lang.String(b{i}); end; 

%# To cell array of strings. Simple, eh? 
c = cell(a); 

%# To char array. Also simple. 
c = char(a); 
+0

Hm, no esperaba que fuera tan sencillo ... He intentado varios enfoques que implican hasta 4 pasos de conversión. Probaré tu código lo antes posible. – Oromis