Matlab - Comparar dos matrices para formar una nueva

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

Comparar dos matrices para formar una nueva

Publicado por bb (5 intervenciones) el 28/02/2020 05:16:52
Tengo 718 matrices U con diferentes informacion en las filas pero con 4 columnas y una matriz M de 8927x1, necesito realizar una comparacion entre cada matriz de U1,U2,U3,....,U718 de la columna 2, es decir, U1(:,2) con la matriz M, si la informacion coincide debo inserta la informacion que tengo en la columna 3 de U, y las filas que no coincide rellenarlas con '0'. La matriz resultante al final es de 8927 x 718

1
2
3
4
5
6
7
8
9
M = zeros([8927 718]);
for i = 1:718
   U =['U' num2str(i)];
    for j = 1:8927
        if( U(:,2) == L(j))
           [L U(:,3)] = M;
        end
    end
end



Gracias por la ayuda
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
sin imagen de perfil
Val: 929
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Comparar dos matrices para formar una nueva

Publicado por Daniel (281 intervenciones) el 28/02/2020 10:21:30
Hola,

Asumo que se crean los nombres de las matrices de una forma dinámica, lo que es una mala práctica. Seria mejor usar celdas para guardas las matrices U ya que es más fácil iterar y se evitan errores.

Lo primero es que la variable U es una cadena de texto no una matriz, por lo que para obtener la matiz hay que usar antes eval() en al línea 3.

Luego para concatenar seria mejor usar algo como

1
L(1:size(U,1), end +1) = U(:,3);

Lo que asigna la tercera columna a una nueva al fina y agrega automáticamente cero

Saludos,
Daniel Rodríguez
Analytics Lane
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