Matlab - Eliminar filas estructura con contenido numérico

 
Vista:
sin imagen de perfil

Eliminar filas estructura con contenido numérico

Publicado por David (42 intervenciones) el 10/07/2012 00:08:33
El siguiente código funciona sin problemas si el contenidos son caracteres.
1
2
3
4
5
6
7
%EJEMPLO1 x(1).p='mamaddfdfd'; 
x(2).p='julios'; x(3).p='julios'; x(4).p='tomas';
 'ORIGINAL'
 x(:).p a=struct2cell(x);
 indice=strcmp(a(:),'julios');
J=find(indice==1);
x(J)=[]; 'FILTRADO' x.p


Sin embargo, si el contenido fuese numérico ¿que habría que cambiar para que funcione de una forma similar?

Es decir:
1
2
3
4
5
6
7
8
9
x(1).p=10';
x(2).p=20; x(3).p=30; x(4).p=40;
 'ORIGINAL'
 x(:).p a=struct2cell(x);
 indice=strcmp(a(:),40); 
J=find(indice==1); 
x(J)=[];
 'FILTRADO'
x.p

Este último código no funciona. ¿Podría alguien echarme una mano? Muchas gracias...
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 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 estructura con contenido numérico

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/07/2012 08:48:20
Tu problema es basicamente los tipos de variables que usas.
1
2
3
4
5
6
7
8
9
10
clear all
x(1).p=10;
x(2).p=20; x(3).p=30; x(4).p=40;
 'ORIGINAL'
 x(:).p, a=struct2cell(x);
 indice=cell2mat(a(:))==40;
J=find(indice==1);
x(J)=[];
 'FILTRADO'
x.p



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
>> estructuras4
 
ans =
 
ORIGINAL
 
 
ans =
 
    10
 
 
ans =
 
    20
 
 
ans =
 
    30
 
 
ans =
 
    40
 
 
ans =
 
FILTRADO
 
 
ans =
 
    10
 
 
ans =
 
    20
 
 
ans =
 
    30




Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
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
sin imagen de perfil

Eliminar filas estructura con contenido numérico

Publicado por David (42 intervenciones) el 10/07/2012 12:03:02
Muchas gracias, sabía que tenía que ser por los tipos de variable pero no utilizaba la funcion cell2mat de la forma correcta.
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