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 件のコメント

Rakesh Praveen
Rakesh Praveen 2014 年 1 月 28 日
Thank you. Your solution fixed my problem.

サインインしてコメントする。

その他の回答 (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 件のコメント

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.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange で Structures についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by