I have a test.mat file which contains 1x10 struct array values with 5 fields. The first field 'f' ie,. 'test.f' contains struct array with a dimension of [2x1 double]. I wanted to store all these 10 [2x1 double] values to another variable 'f_vec'. I tried 'getfield'
f_vec = getfield(test,'f')
but it gives out only 1 [2x1 double] value and not all the values from the struct array. when I tried the below command, I got an error.
f_vec = test.f(1,:)
??? Field reference for multiple structure elements that is followed by more
reference blocks is an error.
So all I wanted to do is to store all the [2x1 double] values from 'f' to f_vec. How do I do it ? Thank you.

 채택된 답변

Walter Roberson
Walter Roberson 2014년 1월 28일

1 개 추천

f_vec = horzcat( test.f ); %would give you 2 x length(test) array

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2014년 1월 28일
편집: Azzi Abdelmalek 2014년 1월 28일

0 개 추천

v=struct('a',num2cell(1:10)','f',num2cell(rand(2,10),1)')
out=reshape([v.f],2,10)'

댓글 수: 2

when I tried your solution, i had an error saying: 'To RESHAPE the number of elements must not change'. walter solution fixed my problem.
Because you didn't adapt my code to your problem.

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

카테고리

도움말 센터 및 File Exchange에서 Structures에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by