remove specific array in struct

조회 수: 2 (최근 30일)
Xuande Zhang
Xuande Zhang 2019년 1월 7일
댓글: Xuande Zhang 2019년 1월 7일
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
nanren888
nanren888 2019년 1월 7일
편집: nanren888 2019년 1월 7일
A struct array has the same fields for all elements.
You cannot remove a field from only account(2)
try typing
account

댓글을 달려면 로그인하십시오.

채택된 답변

nanren888
nanren888 2019년 1월 7일
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
Xuande Zhang
Xuande Zhang 2019년 1월 7일
Thanks for your help! It worked.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

태그

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by