Matlab - borrar parte estructura

 
Vista:

borrar parte estructura

Publicado por lucera (119 intervenciones) el 10/10/2009 20:21:35
hola!!

¿alguien sabe si se puede borrar parte de una estructura?

gracas
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

RE:borrar parte estructura

Publicado por gustavo (44 intervenciones) el 10/10/2009 22:44:18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
h =    %estructura
 
    nombre: 'guano'
      edad: 15
     folio: 1234
      sexo: 'hombre'
 
>> h = rmfield(h, 'edad'); se borra el campo edad de la estructura h
h =
 
    nombre: 'guano'
     folio: 1234
      sexo: 'hombre'
setfield       %agrega un campo a la estrutura

substruct checa este comando talves te sea de mayor utilidad ... pero aun no lo se usar.....checalo.........

o se me ocurre: que conviertas la estructura a un cell array ...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
h.nombre= 'guano';
h.folio= 1234;
h.sexo= 'hombre';
 
h % estructura
%      nombre: 'guano'
%      folio: 1234
%       sexo: 'hombre'
 
campos= fieldnames(h) %nombres de los campos
cell=struct2cell(h) %lo conviertes a un cell array
%seleccionas cuales borrar
%por ejemplo folio
cell=cell([1 3]) %nuevo cell con solo los datos de nombre y sexo
campos=campos([1 3])%nuevos campos nombre y sexo
h = cell2struct(cell, campos,1) %obtienes tu nueva estructura con solo dos campos
bueno es lo mejor que puedo hacer sino funciona checa el comando substruct creo que es el que necesitas....

lamento no ser muy util esta ves....
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

RE:borrar parte estructura

Publicado por FuegoDeVolcan (4 intervenciones) el 30/03/2019 01:37:36
s.a = 1;
s.b = 2;
s.c = 3;
field = 'b';
s = rmfield(s,field)

%s = struct with fields:
a: 1
c: 3
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