Assigning Cell Arrays to Nested Structures within Structure array with Same Dimensions (Error: "Scalar structure required for this assignment")
조회 수: 14 (최근 30일)
이전 댓글 표시
I currently have a structure containing a 2x1 structure array each containing a structure with one field:
struct.structArr(:).field1.field1_1
I have tried to assing values from a cellfun to 'field1_1' using the following code:
[struct.structArr.field1.field1_1] = outputOfCefllfun{:};
The 'structArr' is a 2x1 matrix of structures and the output of the cellfun is a 2x1 cell array each containing a matrix of doubles.
I receive the following error:
Scalar structure required for this assignment.
Is there any way of assigning these values without having to do another cellfun?
Any help would be appreciated, thank you.
댓글 수: 0
답변 (1개)
xi
2019년 8월 26일
I don't know how your struct is initialized. It should work.
%initialize
outputOfCefllfun{1,1}=magic(5);
outputOfCefllfun{2,1}=magic(5);
struct.structArr(1,1).field1=[];
struct.structArr(2,1).field1=[];
%assign
[struct.structArr.field1] = outputOfCefllfun{:};
댓글 수: 2
xi
2019년 8월 26일
Further nested structure is getting more complicated, but you can always use "for loop" to assign the values.
for i=1:2
struct.structArr(i).field1.field1_1=outputOfCellfun{i};
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!