Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Matlab - Cambiar nombre de variables

  Imprimir  
Vista:

Cambiar nombre de variables

Publicado por Pau (2 intervenciones) el 19/05/2012 18:23:56
Hola a todos,

Tengo que abrir 50 archivos en matlab que contienen matrices, y quiero abrirlos en un bulce for para no tener que utilizar 50 veces el comando "load", ya que el código se extendería mucho.

Los archivos se laman igual, lo que pasa es que cambia el número al final. Sí que sé abrirlos mediante el bucle, sería de la siguiente manera:

for i=1:50;
text='1m_30_00';
textMedio='i';
textFinal='.dat';
NOMBREVARIABLE = strcat(text,textMedio,textFinal);
end

el problema es que no sé cómo hacer para que cambie el nombre de la variable cada vez y así no se me machaque en la misma variable. Podría hacer un strcat también??

Muchas 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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Cambiar nombre de variables

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2621 intervenciones) el 20/05/2012 02:11:43
Hola.
clear all for i=1:4 text='1m_30_00'; textMedio=num2str(i); textFinal='.dat'; NOMBREVARIABLE = strcat(text,textMedio,textFinal) end

EJECUCION >> Untitled NOMBREVARIABLE = 1m_30_001.dat NOMBREVARIABLE = 1m_30_002.dat NOMBREVARIABLE = 1m_30_003.dat NOMBREVARIABLE = 1m_30_004.dat


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com
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

Cambiar nombre de variables

Publicado por Pau (2 intervenciones) el 20/05/2012 13:08:29
Muchas gracias Jose por la ayuda

el problema que veo en la ejecución es que todas las variables se llaman de la misma manera, entonces al hacer el load solamente me cargaría el último fichero. Si pusiese el load dentro del bucle for, supongo que sí que cargaría todos los ficheros, pero se llamarían todos de la misma forma.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Cambiar nombre de variables

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2621 intervenciones) el 20/05/2012 18:48:16
Hola Paul.
Yo solo te habia filtrado tu codigo, nada mas.
Pero tu pregunta se puede hacer de varias maneras.
Aqui tiene dos maneras de hacerlo.


clear all for i=1:2 % 1RA FORMA matriz=load(strcat('1m_30_00',num2str(i),'.dat')); v=genvarname(['M',num2str(i)]); eval([v, '=matriz']); % 2DA FORMA a(:,:,i)= load(strcat('1m_30_00',num2str(i),'.dat')); end display(a)


EJECUCION >> cambiar_variables1 M1 = 0.9649 0.9572 0.1419 0.1576 0.4854 0.4218 0.9706 0.8003 0.9157 M2 = 0.7922 0.0357 0.6787 0.9595 0.8491 0.7577 0.6557 0.9340 0.7431 a(:,:,1) = 0.9649 0.9572 0.1419 0.1576 0.4854 0.4218 0.9706 0.8003 0.9157 a(:,:,2) = 0.7922 0.0357 0.6787 0.9595 0.8491 0.7577 0.6557 0.9340 0.7431


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com
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

Cambiar nombre de variables

Publicado por Andres afgb900830@hotmail.com (7 intervenciones) el 28/10/2013 02:17:25
Estimado Jose

tengo un problema parecido al de PAU. Tengo tres vectores de diferentes tamaños llamados L1, L2, L3 y deseo que el comando "length" entienda que cuando formo la Palabra L1 ó L2 ó L3 me refiero a las variables, pero solo me muestra el tamaño de la cadena de texto que es 2. Estaria muy agradecido si esto tendria alguna solucion. Saludos.

for i=1:3
TI(i)=length(strcat('L',num2str(i)))
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

Cambiar nombre de variables

Publicado por Kari (1 intervención) el 04/07/2012 09:46:58
Para futuras referencias... para cualquier tipo de archivo de datos se puede usar lo siguiente:

clear all, close all, clc
d = dir('C:\Users\...\*.txt') % Entre comillas simples debe ir la dirección de donde se
% encuentren los archivos que quieres procesar. *.txt puede ser cambiado
% por cualquier otro tipo de archivo que sea legible para cargar a Matlab
N = length(d);
Datos= cell(1,N); % Se define antes para disminuir el tiempo de ejecución del bucle for
for k=1:N
fname=d(k).name;
Datos{k}=load(fname);
end

% Como verán en la variable Datos se cargan todos los archivos encontrados en el directorio, usando Datos{i} donde i = 1:N, pueden acceder a cualquiera de esos datos y procesarlos de forma distinta fuera del bucle anterior
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Cambiar nombre de variables

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2621 intervenciones) el 04/07/2012 16:10:24
Hola Kari.
Gracias por tu invervención en esta pregunta, en la parte de "d = dir('C:\Users\...\*.txt')", deberias usar la funcion uigetfile, eso te va a permitir acceder a cualquier lugar de la pc y y poder cargar todo los datos que desees y adeamas de cualquier extension.
Ademas podrias usar la funcion uigetfile, dir y ls y tendras acceso a los nombre de los archivos.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com
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