Matlab - union de vectores en función de un orden específico

 
Vista:

union de vectores en función de un orden específico

Publicado por Guillermo (10 intervenciones) el 15/08/2013 16:32:04
Hola a todos,

Tengo dos vectores de datos:

A = [a,b,c,d...]

B = [1,0,5,3,7,2,4,6]

Mi interés es crear un nuevo vector C que agrupe las dos matrices de manera intecarlada y siguiendo un orden específico, 1 letra por 2 números...

tal que

C = [a,1,0,b,5,3,c,7,2...]

Alguna idea?

Gracias de antemano,

Guillermo
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 Jorge
Val: 30
Ha disminuido su posición en 12 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

union de vectores en función de un orden específico

Publicado por Jorge (213 intervenciones) el 15/08/2013 18:50:03
Hola Guillermo...

Te dejo un pequeño código para tal fin:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clear;clc;
A={1 2 3 4 5 6};
B={'a','b','c'};
dimA=size(A);
dimB=size(B);
dimC=dimA(2)+dimB(2);
kA=1;kB=1;
C=cell(1,dimC);
for n=1:dimC
    switch n
        case {1 4 7}
           C(n)=B(kB);
           kB=kB+1;
        case {2 3 5 6 8 9}
           C(n)=A(kB);
           kA=kA+1;
    end
end
disp(C);


Evidentemente es código muy sencillo que habrías de mejorar en gran medida. Te lo comparto para que os tengáis una idea de como va esto. Cualquier duda podéis preguntar y en medida de lo posible te responderé.

Saludos y mucho éxito...

Jorge De Los Santos
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

union de vectores en función de un orden específico

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 16/08/2013 08:18:19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clear all
A = [{'ahgh'},{'b'},{'cdf'},{'ddfg'}];
B =[1,0,9095,3,77,2,4,456];
n=length(A);
k=1;
m=1;
for i=1:3*n
    if rem(i,3)==1
    C{i}=A{k};
    k=k+1;
 
    else
    C{i}=num2str(B(m));
    m=m+1;
    end
end
display(C)




1
2
3
4
5
6
7
8
9
10
11
>> unir_cadenas_char_y_numeros
C =
 
  Columns 1 through 9
 
    'ahgh'    '1'    '0'    'b'    '9095'    '3'    'cdf'    '77'    '2'
 
  Columns 10 through 12
 
    'ddfg'    '4'    '456'





Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]


http://matlabcaballero.blogspot.com


http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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