Matlab - Strings

 
Vista:

Strings

Publicado por Eber (12 intervenciones) el 05/01/2010 01:57:39
Hola. Tengo un vector de caracteres digamos vec1=['x';'y';'z'] y otro vector con números, por ejemplo vec2=[5;8;4].

Quisiera saber si existe alguna forma (automática) de asignarle a cada caracter o string del vector vec1 los correspondientes números del vector vec2, sin tener que escribir directamente las asignaciones x=5; ;y=8; z=4.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Strings

Publicado por Ramón (11 intervenciones) el 05/01/2010 13:43:51
No sé si lo he entendido bien, pero prueba a poner a definir primero cada vector y luego a escribir directamente: vec1=vec2
Luego sólo tienes que llamarlo de alguna de las dos maneras, o bien vec1 o bien vec2

No sé si te he ayudado.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Strings

Publicado por Eber (12 intervenciones) el 05/01/2010 19:54:51
Amigo, lastimosamente no funcionó. Yo tengo lo siguiente: Un vector de strings vec1=['x';'y';'z';'w'] y otro vector con números vec2=[4;5;2;9]. Lo que quiero hacer, con dos o tres instrucciones como máximo, es asignar a cada string del vector vec1 los correspondientes números del vector vec2. O sea, hacer las asignaciones x=4 , y= 5, z=2, w=9 de manera 'automática' y no escribirlas directamente, pues para un vector de 10 strings tocaría escribir 10 asignaciones.

He intentado con structs, cells y arrays pero hasta el momento nada. Cualquier ayuda me serviría. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Strings

Publicado por Kike (304 intervenciones) el 05/01/2010 21:26:39
En estos momentos no tengo MATLAB para poder comprobar el código fuente, pero quizá te sirva de ayuda para tener más ideas. En el help de MATLAB está la sintaxis de eval.

[filas, columnas] = size(vec1);

for k = 1:filas
eval(sprintf('%s = %d', vec1(k), vec2(k)))
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Strings

Publicado por Eber (12 intervenciones) el 05/01/2010 21:48:26
YESSSSSS..... muchas gracias amigo. La cantidad "filas" la obtengo mejor con length(vec2).

La cuestión es que no salga en pantalla la evaluación es lo de menos, se puede eliminar con un simple "clc". Me sacaste por ahora de una gran duda.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar