How to add additional field in the structure from already formed cell array?
조회 수: 13 (최근 30일)
이전 댓글 표시
I want to add the additional field with (imported) data to include in already formed structure. I will use the example from the tutorial:
patient(1).name = 'John Doe';
patient(1).billing = 127.00;
patient(2).name = 'Ann Lane';
patient(2).billing = 28.50;
The data I want to include in the structure refer to cell array:
Name:
'John Doe'
'John Doe'
'John Doe'
'Ann Lane'
'Ann Lane'
'Ann Lane'
'Ann Lane'
'Ann Lane'
and related Score (8x1 double): [72 75 88 14 12 33 66 90].
I want to form a new field in patient structure (score) so that the [72, 75,88] match patient(1), i.e. John Doe and the rest to patient(2) i.e. Ann Lane.
댓글 수: 0
채택된 답변
Azzi Abdelmalek
2015년 6월 13일
patient(1).name = 'John Doe';
patient(1).billing = 127.00;
patient(2).name = 'Ann Lane';
patient(2).billing = 28.50;
name={'John Doe','John Doe','John Doe','Ann Lane','Ann Lane','Ann Lane','Ann Lane','Ann Lane'}
score=num2cell( [72 75 88 14 12 33 66 90])
nom={patient.name}
for k=1:numel(score)
p=patient(ismember(nom,name{k}))
pa(k).name=p.name
pa(k).billing=p.billing
pa(k).score=score(k)
end
pa
댓글 수: 4
Azzi Abdelmalek
2015년 6월 13일
편집: Azzi Abdelmalek
2015년 6월 13일
No, maybe you didn't clear the variable pa. Try to clear your variables
clear
Or try this
patient=struct('name',{'John Doe'; 'Ann Lane'},'billing',{127.00;28.50})
name={'John Doe','John Doe','John Doe','Ann Lane','Ann Lane','Ann Lane','Ann Lane','Ann Lane'}
score=num2cell( [72 75 88 14 12 33 66 90])
for k=1:numel(patient)
nam=patient(k).name
pa(k).name=patient(k).name
pa(k).billing=patient(k).billing
pa(k).score=score(ismember(name,nam))
end
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!