필터 지우기
필터 지우기

store all array values in a field to a variable

조회 수: 4 (최근 30일)
Rakesh Praveen
Rakesh Praveen 2014년 1월 28일
댓글: Azzi Abdelmalek 2014년 1월 28일
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일
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일
v=struct('a',num2cell(1:10)','f',num2cell(rand(2,10),1)')
out=reshape([v.f],2,10)'
  댓글 수: 2
Rakesh Praveen
Rakesh Praveen 2014년 1월 28일
when I tried your solution, i had an error saying: 'To RESHAPE the number of elements must not change'. walter solution fixed my problem.
Azzi Abdelmalek
Azzi Abdelmalek 2014년 1월 28일
Because you didn't adapt my code to your problem.

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

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by