remove specific array in struct

2 vues (au cours des 30 derniers jours)
Xuande Zhang
Xuande Zhang le 7 Jan 2019
Commenté : Xuande Zhang le 7 Jan 2019
Hey guys,
I'm stuck with one simple issue. I am practicing on 'struct' now. As practice, I created a stuct 'account' with fields 'owner', 'balance', and 'number' which is 1x3 array.
Then I was trying to creat the second account 'account(2)', however I accidentally typed 'account(2).name' which made a 1x4 array.
Tried rmfield, but failed:"Subscripted assignment between dissimilar structures."
Can someone help? Thanks
account(2) = rmfield(account(2),field)
  1 commentaire
nanren888
nanren888 le 7 Jan 2019
Modifié(e) : nanren888 le 7 Jan 2019
A struct array has the same fields for all elements.
You cannot remove a field from only account(2)
try typing
account

Connectez-vous pour commenter.

Réponse acceptée

nanren888
nanren888 le 7 Jan 2019
account = struct('owner','Harry','balance',0,'number',42)
account =
struct with fields:
owner: 'Harry'
balance: 0
number: 42
>> account(2) = struct('name','Harry','balance',0,'number',42)
Subscripted assignment between dissimilar structures.
>>Not sure how you created it
>> account(2).name = 'Harry'
account =
1×2 struct array with fields:
owner
balance
number
name
>> account
account =
1×2 struct array with fields:
owner
balance
number
name
>> account = rmfield(account,'name')
account =
1×2 struct array with fields:
owner
balance
number
or maybe
account(2).owner = account(2).name; # first
  1 commentaire
Xuande Zhang
Xuande Zhang le 7 Jan 2019
Thanks for your help! It worked.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by