Matlab - concatenación de vectores

 
Vista:

concatenación de vectores

Publicado por arturo.mj (8 intervenciones) el 25/11/2015 14:24:24
Buenas!

He hecho el siguiente bucle for para cargar determinados archivos de texto en MatLab.
1
2
3
4
5
6
7
8
9
10
11
for i=9242:5:11702
j=1:493
 
file1='/FZ_element';
file2=num2str(i);
file3='.txt';
file=strcat(file1,file2,file3);
 
load(path_elements);
 
end

El caso es que el siguiente paso que trato de hacer y no consigo es que en vez de cargar todos los archivos por separado, a medida que el bucle va importando un archivo lo ponga en una matriz a la que se vayan sumando los siguientes
Preferiblemente me gustaría acabar teniendo un solo vector columna donde cada TXT importado se vaya poniendo después del anterior.
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

concatenación de vectores

Publicado por arturo.mj (8 intervenciones) el 25/11/2015 15:00:21
Me respondo a mi mismo por si a alguien le sirve

He cambiado de for a while, y simplemente he creado una matriz "m1" de las dimensiones que quería obtener y con el bucle he ido añadiendo los vectores a sus posiciones correspondientes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
while 1
    i=i+5;
 
 
    a=a+size_elements;
 
    if a<=size_elements;
        a=1;
    end
 
    b=b+size_elements;
 
    file1 = '/FZ_element';
    file2 = num2str(i);
    file3 = '.txt';
    file = strcat(file1,file2,file3);
    path_elements=strcat(path,file);
 
    if b>size_total
        break
    end
 
    c=load(path_elements);
 
 
 
    m1(a:b,:)=c;
 
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
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

concatenación de vectores

Publicado por Royeth (1818 intervenciones) el 25/11/2015 18:34:21
la forma más corta es usando horzcat que es concatenación horizontal he aquí un ejemplo :

1
2
3
4
vector=[];
for k=1:10;
vector=horzcat(vector,rand(1,5));
end

donde rand(1,5) es un vector aleatorio de una fila y 5 columnas pero para tu caso solo sería colocar el dato que vas obteniendo de los ciclos ahí y ya


espero te sea de ayuda
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar