logo LWP
Comunidad de Programadores
Crear cuenta
Recordar contraseña
Recordar contraseña en este navegador
Cursos Biblioteca de Temas Preguntas y Respuestas Buscador para Programadores Drivers Solicitudes para Programadores Programas y Utilidades Ofertas de Trabajo

Matlab - Cambiar nombre de variables

Volver
Filtrado por todos los mensajes
 Imprimir facebook  twitter 
Vistas:
Mensajes realizados anteriormente (No estaban la última vez que entraste)
 Cambiar nombre de variables
Pau (19/05/2012 18:23:56)
1.980 visitas
5 respuestas
 Cambiar nombre de variables
JOSE JEREMIAS CABALLERO (20/05/2012 02:11:43)
 Cambiar nombre de variables
Pau (20/05/2012 13:08:29)
 Cambiar nombre de variables
JOSE JEREMIAS CABALLERO (20/05/2012 18:48:16)
 Cambiar nombre de variables
Kari (04/07/2012 09:46:58)
 Cambiar nombre de variables
JOSE JEREMIAS CABALLERO (04/07/2012 16:10:24)
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 al autorSubir
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 (1803 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 el mensajeSubir
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 el mensajeSubir
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 (1803 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 el mensajeSubir
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 el mensajeSubir
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 (1803 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 el mensajeSubir