remove specific array in struct

2 views (last 30 days)
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

Find more on Structures in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!