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

0 votes

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

Plus de réponses (0)

Catégories

Produits

Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by