• Miércoles 5 de Febrero de 2025, 21:05

Autor Tema:  Problema De Matrices  (Leído 1906 veces)

abartolomec

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Problema De Matrices
« en: Lunes 18 de Febrero de 2008, 01:05 »
0
Hola a todos, os planteo mi problema para ver si algún avanzado en Matlab puede ayudarme.
Tengo 4 matrices 3x3 y pretendo conseguir todas las combinaciones posibles al juntar estas 4 matrices en fila o en columna.Me explico mejor con un ejemplo:

A1=[1 1 1;1 1 1;1 1 1]
A2=[2 2 2 ;2 2 2;2 2 2]
B1=[3 3 3;3 3 3 ;3 3 3]
B2=[4 4 4;4 4 4;4 4 4]

de estas 4 matrices solo puedo combinar las A con las B (no mezclar A1 con A2 ni B1 con B2) para obtener estos resultados:8 matrices 3x6 (hecho en filas)


M1=[A1 B1]
M2=[A1 B2]
M3=[A2 B1]
M4=[A2 B2]
M5=[B1 A1]
M6=[B1 A2]
M7=[B2 A1]
M8=[B2 A2]

La pregunta es :¿Se puede hacer con bucles 'for'?¿Cómo?Si no se puede,¿hay otra forma?

MUchas gracias de antemano

fa61an

  • Miembro MUY activo
  • ***
  • Mensajes: 100
    • Ver Perfil
Re: Problema De Matrices
« Respuesta #1 en: Lunes 18 de Febrero de 2008, 15:38 »
0
Si te fija bien tu mismo te respondiste.

Con la linea M1=[A1 B1] "la concatenas" no es exacta mente un mezclado ahora no se si es exactamente lo que necesitas.

Vamos a suponer esto
A1=[1 1 1;1 1 1;1 1 1]
B1=[3 3 3;3 3 3 ;3 3 3]
Al ejecutar M1 = [A1 B1] el resultado es este
Código: Text
  1. 1     1     1     3     3     3
  2. 1     1     1     3     3     3
  3. 1     1     1     3     3     3
  4.  
Pero si lo que tu buscas es el siguiente resultado
Código: Text
  1. 1     3     1     3     1     3
  2. 1     3     1     3     1     3
  3. 1     3     1     3     1     3
  4.  

Se podria hacer utilizando un bucle for o por indexacion de matrices.
Con la siguiente se tiene el resultado pero indexando matrices
Código: Text
  1. M1=[A1(:,1) B1(:,1) A1(:,2) B1(:,2) A1(:,3) B1(:,3)]
  2.  
Esto se puede usar cuando no se tiene buen conocimiento sobre los bucles como el FOR

Espero sirva

abartolomec

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema De Matrices
« Respuesta #2 en: Lunes 18 de Febrero de 2008, 16:42 »
0
Muchas gracias por responder,pero lo que yo pregunto es todas las combinaciones posibles.En el ejemplo solo puse 4 matrices,pero yo lo quiero hacer para 20,por eso necesito un bucle for y no ir haciéndolas una a una.No se si me explico bien

abartolomec

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema De Matrices
« Respuesta #3 en: Lunes 18 de Febrero de 2008, 16:43 »
0
y lo que yo busco es la primera forma que hiciste:
M=[A1,B1] las 2 matrices seguidas , no mezcladas

abartolomec

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema De Matrices
« Respuesta #4 en: Lunes 18 de Febrero de 2008, 18:34 »
0
Yo hice una cosa así,pero no me funciona bien:

a1=[1 2 3];
b1=[3 2 1];
a2=[4 5 6];
b2=[6 5 4];

M=[a1;a2] %Esto es como quiero que queden las matrices (2x3)

for I=[a1 a2]
    for J=[b1 b2]
        M=[I;J]%Esto es lo que no se hacer:me quedan matrices 2x1 y quiero que sean 2x3
    end
end