Matlab - Como ordenar una matriz intercalada

 
Vista:

Como ordenar una matriz intercalada

Publicado por alex (4 intervenciones) el 03/11/2012 03:53:54
tengo 3 matrices Fx,Fy,Fz, con dimensiones nx8, necesito formar una sola matriz donde ella tome la primera fila de Fx, la primera fila de Fy y la Primera fila Fz y asi sucesivamente hasta n veces.

fx =

1.0000 0 0 0.2015 -0.1330 0.4295 0 0
1.0000 0 0 -0.1402 -0.4920 0.3164 0 0
1.0000 0 0 0.3591 -0.2234 0.2731 0 0
1.0000 0 0 -0.0580 0.2190 -0.1557 0 0
fy =

0 1.0000 0 0.1852 0.1447 0.3948 0 0
0 1.0000 0 -0.3375 0.2044 0.7615 0 0
0 1.0000 0 0.4550 0.1763 0.3460 0 0
0 1.0000 0 -0.2426 -0.0523 -0.6517 0 0
fz =

0 0 1.0000 -0.1966 0 -0.8122 1.0000 -1.0000
0 0 1.0000 -0.5328 0 0.5657 1.0000 -1.0000
0 0 1.0000 0.2846 0 0.8976 1.0000 -1.0000
0 0 1.0000 -0.2251 0 -0.7423 1.0000 -1.0000
Anexo la matriz como deberia ser
F=
F=[fx(1,:);fy(1,:);fz(1,:);fx(2,:);fy(2,:);fz(2,:);fx(3,:);fy(3,:);fz(3,:);fx(4,:);fy(4,:);fz(4,:);]

f =

1.0000 0 0 0.2015 -0.1330 0.4295 0 0
0 1.0000 0 0.1852 0.1447 0.3948 0 0
0 0 1.0000 -0.1966 0 -0.8122 1.0000 -1.0000
1.0000 0 0 -0.1402 -0.4920 0.3164 0 0
0 1.0000 0 -0.3375 0.2044 0.7615 0 0
0 0 1.0000 -0.5328 0 0.5657 1.0000 -1.0000
1.0000 0 0 0.3591 -0.2234 0.2731 0 0
0 1.0000 0 0.4550 0.1763 0.3460 0 0
0 0 1.0000 0.2846 0 0.8976 1.0000 -1.0000
1.0000 0 0 -0.0580 0.2190 -0.1557 0 0
0 1.0000 0 -0.2426 -0.0523 -0.6517 0 0
0 0 1.0000 -0.2251 0 -0.7423 1.0000 -1.0000

gracias por la ayuda que me puedan brindar
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como ordenar una matriz intercalada

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 03/11/2012 14:31:30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
clc
clear all
fx =[1.0000 0 0 0.2015 -0.1330 0.4295 0 0
    1.0000 0 0 -0.1402 -0.4920 0.3164 0 0
    1.0000 0 0 0.3591 -0.2234 0.2731 0 0
    1.0000 0 0 -0.0580 0.2190 -0.1557 0 0];
 
fy =[0 1.0000 0 0.1852 0.1447 0.3948 0 0
    0 1.0000 0 -0.3375 0.2044 0.7615 0 0
    0 1.0000 0 0.4550 0.1763 0.3460 0 0
    0 1.0000 0 -0.2426 -0.0523 -0.6517 0 0];
 
fz =[0 0 1.0000 -0.1966 0 -0.8122 1.0000 -1.0000
    0 0 1.0000 -0.5328 0 0.5657 1.0000 -1.0000
    0 0 1.0000 0.2846 0 0.8976 1.0000 -1.0000
    0 0 1.0000 -0.2251 0 -0.7423 1.0000 -1.0000];
 
F=[fx(1,:);fy(1,:);fz(1,:)];
for i=2:size(fx,1)
    tem=[fx(i,:);fy(i,:);fz(i,:)];
    F=[F;tem];
end
display(F)



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
30
31
F =
 
  Columns 1 through 5
 
          1.00             0             0          0.20         -0.13
             0          1.00             0          0.19          0.14
             0             0          1.00         -0.20             0
          1.00             0             0         -0.14         -0.49
             0          1.00             0         -0.34          0.20
             0             0          1.00         -0.53             0
          1.00             0             0          0.36         -0.22
             0          1.00             0          0.46          0.18
             0             0          1.00          0.28             0
          1.00             0             0         -0.06          0.22
             0          1.00             0         -0.24         -0.05
             0             0          1.00         -0.23             0
 
  Columns 6 through 8
 
          0.43             0             0
          0.39             0             0
         -0.81          1.00         -1.00
          0.32             0             0
          0.76             0             0
          0.57          1.00         -1.00
          0.27             0             0
          0.35             0             0
          0.90          1.00         -1.00
         -0.16             0             0
         -0.65             0             0
         -0.74          1.00         -1.00



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacionMatlab
[email protected]

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
1
Comentar

Como ordenar una matriz intercalada

Publicado por alex (4 intervenciones) el 03/11/2012 17:34:46
Muchas gracias jose
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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como ordenar una matriz intercalada

Publicado por Dave (1094 intervenciones) el 05/11/2012 05:08:39
Hola Alex;

A la propuesta anterior tendría que agregarle la posibilidad de iniciar desde el indice 1 en vez del 2.

Considerando las matrices iniciales:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Fx =[1.0000 0 0 0.2015 -0.1330 0.4295 0 0
    1.0000 0 0 -0.1402 -0.4920 0.3164 0 0
    1.0000 0 0 0.3591 -0.2234 0.2731 0 0
    1.0000 0 0 -0.0580 0.2190 -0.1557 0 0];
 
Fy =[0 1.0000 0 0.1852 0.1447 0.3948 0 0
    0 1.0000 0 -0.3375 0.2044 0.7615 0 0
    0 1.0000 0 0.4550 0.1763 0.3460 0 0
    0 1.0000 0 -0.2426 -0.0523 -0.6517 0 0];
 
Fz =[0 0 1.0000 -0.1966 0 -0.8122 1.0000 -1.0000
    0 0 1.0000 -0.5328 0 0.5657 1.0000 -1.0000
    0 0 1.0000 0.2846 0 0.8976 1.0000 -1.0000
    0 0 1.0000 -0.2251 0 -0.7423 1.0000 -1.0000];


El código que hace el arreglo:

1
2
3
4
5
6
7
F=[];
 
for n=1:size(Fx,1)
    tmp=[Fx(n,:);Fy(n,:);Fz(n,:)];
    F=[F;tmp];
end
F


El resultado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
F =
 
    1.0000         0         0    0.2015   -0.1330    0.4295         0         0
         0    1.0000         0    0.1852    0.1447    0.3948         0         0
         0         0    1.0000   -0.1966         0   -0.8122    1.0000   -1.0000
    1.0000         0         0   -0.1402   -0.4920    0.3164         0         0
         0    1.0000         0   -0.3375    0.2044    0.7615         0         0
         0         0    1.0000   -0.5328         0    0.5657    1.0000   -1.0000
    1.0000         0         0    0.3591   -0.2234    0.2731         0         0
         0    1.0000         0    0.4550    0.1763    0.3460         0         0
         0         0    1.0000    0.2846         0    0.8976    1.0000   -1.0000
    1.0000         0         0   -0.0580    0.2190   -0.1557         0         0
         0    1.0000         0   -0.2426   -0.0523   -0.6517         0         0
         0         0    1.0000   -0.2251         0   -0.7423    1.0000   -1.0000



Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.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