Matlab - Eliminar filas en matlab

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

Eliminar filas en matlab

Publicado por L (1 intervención) el 20/02/2019 03:14:07
Hola , es que estoy haciendo un codigo en matlab que me busque un numero y si me lo encuentra, entonces que borre la fila completa y la envie a una nueva matriz, estoy tratando de hacerlo y me sale el error con el mensaje de "Matrix index is out of range for deletion." ¿Alguien me puede decir cual es el error de mi codigo? o me pueden sugerir una forma diferente de hacerlo, aqui les dejo lo que he hecho , gracias :) . Apenas estoy comenzando con esto de matlab :P , gracias nuevamente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
f = 6;
c = 3;
b = 0 ;
R = round (randn(f,c)*2);
B = R ;
%Aqui comienzo a buscar en la matriz%
for i=1:1:f
    for j=1:1:c
%Aqui pongo algo para que me diga cual es el numero y me lo compare con lo que estoy buscando%
        eye = R(i,j);
        if eye == b
            B (i,:)=[];
        break
 
        end
    end
end
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: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Eliminar filas en matlab

Publicado por Daniel (354 intervenciones) el 20/02/2019 09:36:41
Hola,

Entiendo que la solución en Matlab puede ser algo más sencilla

1
2
3
4
5
6
7
8
9
10
11
12
f = 6;
c = 3;
b = 0;
R = round (randn(f,c)*2);
 
rows = sum(R==b, 2) ~= 0;
 
% Matrix con valor b
B = R(rows, :);
 
% Matrix sin valores b
R(rows, :) = [];

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
1
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

Eliminar filas en matlab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 20/02/2019 13:54:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
clear
f = 6;
c = 3;
b = 0 ;
R = round (randn(f,c)*2);
B = [ ];
%Aqui comienzo a buscar en la matriz%
i=1;
while i<=f
    for j=1:c
%Aqui pongo algo para que me diga cual es el numero y me lo compare con lo que estoy buscando%
        if R(i,j) == b
            B =[B; R(i,:) ];
            R(i,:)=[ ];
            f=size(R,1);
            i=i-1;
        break
        end
    end
    i=i+1;
end
R
B

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>> eliminar_guardar
R =
    -1     0     3
     1     1     0
     2    -3     1
     0     2    -1
     1    -2    -2
     1    -4    -6
 
R =
     2    -3     1
     1    -2    -2
     1    -4    -6
 
 
B =
    -1     0     3
     1     1     0
     0     2    -1


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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