Matlab - Construir matriz de nx3 a 2nx2

 
Vista:
sin imagen de perfil
Val: 45
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Construir matriz de nx3 a 2nx2

Publicado por André (23 intervenciones) el 10/09/2018 21:55:43
Hola nuevamente, estoy resolviendo un problema de elementos finitos con matab y debo construir una matriz de 2nx2, pero esta tiene una característica especial , es muy complicado explicarlo con palabras, les dejo una foto para que vean dos ejemplo y me ayuden con el codigo:

ejemplo-matriz

1
2
3
4
5
6
7
8
9
10
FIJACIONES2=[2 1 0;5 0 0; 7 1 1;8 0 1]
NTF=4
B=FIJACIONES2(:,1)
BB=zeros(2*NTF,1)
for i=1:NTF
    for j=1:2*NTF
        BB(j,1)=2*B(i)-1
        BB(j+1,1)=2*B(i)
    end
end

otro intento pero tampoco me salio

1
2
3
4
5
6
7
8
NTF=4
A=zeros(2*NTF,2)
for i=1:NTF
    A(2*i-1,1)=2*i-1
    A(2*i-1,2)=FIJACIONES2(i,2)
    A(2*i,1)=2*i
    A(2*i,2)=FIJACIONES2(i,3)
end

FIJACIONES es la matriz nx3 que debo transformar a 2nx2

Eso tenia hasta el momento, pero no me funciona


Gracias de antemano por sus respuestas
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 JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Construir matriz de nx3 a 2nx2

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 10/09/2018 22:09:07
1
2
3
4
matriznx3=[1 1 1; 2 0 1; 4 1 1];
%matriznx3=[2 1 0; 5 0 0; 7 1 1; 8 0 1];segundo ejemplo que pones 
matriz2nx2=[repelem(matriznx3(:,1),2)*2-repmat([1 0]',size(matriznx3*3,1),1) reshape(matriznx3(:,2:3)',[],1) ];
disp(matriz2nx2)
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
sin imagen de perfil
Val: 45
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Construir matriz de nx3 a 2nx2

Publicado por André (23 intervenciones) el 11/09/2018 05:05:56
mmm no entiendo, ese codigo es para ese ejemplo en especifico?, no es para cualquier matriz con las condiciones que describo o me equivoco, con un cilo for como lo haria?

EDITADO: lo acabo de comprobar, si funciona para cualquier matriz!!! Muchas gracias. No conocia el comando "reshape" ni "repmat"


GRACIAS!
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 JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Construir matriz de nx3 a 2nx2

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 11/09/2018 06:37:08
Afortunadamente hay muchas funciones que te van a evitar ciclos y Matlab en cuanto a manipulación de matrices tiene muchas funciones que te permiten ahorrarte líneas de código y tiempo de ejecución.


Saludos desde Santiago.
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
sin imagen de perfil
Val: 45
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Construir matriz de nx3 a 2nx2

Publicado por André (23 intervenciones) el 11/09/2018 09:47:54
Saludos, yo también soy de Chile!


(Y gracias nuevamente)
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