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

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:

Cambiar nombre de variables

Autor:Pau (2 intervenciones)
Fecha: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!
Responder
información
Otras secciones de LWP con contenido similar...
Imágen de perfil de JOSE JEREMIAS CABALLERO
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Cambiar nombre de variables

Autor:JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2480 intervenciones)
Fecha: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
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Cambiar nombre de variables

Autor:Pau (2 intervenciones)
Fecha: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.
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Cambiar nombre de variables

Autor:JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2480 intervenciones)
Fecha: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
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Cambiar nombre de variables

Autor:Andres afgb900830@hotmail.com (3 intervenciones)
Fecha: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
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Cambiar nombre de variables

Autor:Kari (1 intervención)
Fecha: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
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Cambiar nombre de variables

Autor:JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2480 intervenciones)
Fecha: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
Comentar