2011-06-05 33 views
8

Me preguntaba si hay una manera fácil en MATLAB para realizar la siguiente operación: me gustaría copiar una fila o columna de una matriz e insertarlo en la próxima fila/columna.Copie una fila o columna de una matriz e insértela en la siguiente fila/columna

Por ejemplo: dada una matriz de 3x3

1 2 3 
4 5 6 
7 8 9 

me gustaría copiar la primera fila y la inserta como una segunda fila:

1 2 3 
1 2 3 
4 5 6 
7 8 9 

Puede alguien aconsejar cómo podría lograr esto en MATLAB? ¡Gracias!

+0

afortunadamente es matlab estamos hablando, y matlab puede hacer de todo :-) –

Respuesta

16

puede simplemente repetir los índices de las filas desea repetir

A = A([1 1 2 3],:) 
0
A = [A(1,:); A]; 
+0

No es lo suficientemente general. El ejemplo que dio OP fue usar la primera fila, pero su pregunta no. trutheality tiene el único método general que funcionará para cualquier fila de selección e inserción. –

3

al insertar una fila número source como número de fila target:

A = [A(1:target-1,:); A(source,:); A(target:end,:)]; 
0

que sé este es un tema muy viejo, pero esta publicación surgió en búsquedas que hice por el mismo problema cuando estaba buscando como función específica de Matlab. No recuerdo el nombre de ... padarray.

Así, se podría hacer:

A = [1 2 3; 4 5 6; 7 8 9];

A = padarray (A, [1 0], 'replicar', 'pre');

Esto a menudo es útil si, por ejemplo, A es el resultado de una función que no ha guardado explícitamente, por lo que no sabe cuál es la primera fila. De todos modos, ¡espero que esto ayude a alguien!

Cuestiones relacionadas