remove specific array in struct

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 Comment

nanren888
nanren888 on 7 Jan 2019
Edited: nanren888 on 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

Sign in to comment.

 Accepted Answer

nanren888
nanren888 on 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

More Answers (0)

Categories

Products

Release

R2018b

Community Treasure Hunt

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

Start Hunting!