How to convert a structure into a individual double elements

조회 수: 1,003(최근 30일)
Hello all,
I have a structure containing ten "8760x1 double" I need to do some descriptive statistical analysis for each group of data. I want to convert this structure into ten dettached differents elements. How can I do this? I have tried struct2cell and I get one 10x1 cell but then I don't know how to dettach each group of data out of this.
Thanks for your help!

채택된 답변

Image Analyst
Image Analyst 2012년 6월 25일
Why not just simply do
vector1 = yourStruct.vector1;
vector2 = yourStruct.vector2;
vector3 = yourStruct.vector3;
vector4 = yourStruct.vector4;
vector5 = yourStruct.vector5;
vector6 = yourStruct.vector6;
vector7 = yourStruct.vector7;
vector8 = yourStruct.vector8;
vector9 = yourStruct.vector9;
vector10 = yourStruct.vector10;
which is very easy, intuitive, and straightforward?
  댓글 수: 1
T Path
T Path 2015년 12월 12일
I had a bit of a rough time loading data from a .mat file. This method works like a charm.

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

추가 답변(6개)

grapevine 2012년 6월 25일
there are different ways to sort out your issue
you might use:
C= struct2cell(s)
and then
A= cell2mat(C)
another way is to write a small code with a loop to copy all the elements of the structure in an array, for example
s = struct('f1', [1, 3, 2, 4])
for i=1:1:lenS
a=[ a s(f1)]
good luck

Andrei Bobrov
Andrei Bobrov 2012년 6월 25일
Try this is code
A = struct2cell(yourstructdata);
out = cat(2,A{:});

Irwansyah Ramadhani
Irwansyah Ramadhani 2016년 6월 5일
I have a struct 2x1 and I want to write it's contain to excel directly. So, I want to ask the way to do it. Thank you
  댓글 수: 1
Image Analyst
Image Analyst 2016년 6월 5일
Call xlswrite for each member of the structure. You have to get a numerical array or a cell array of strings. If you don't know how to do that then tell us what the structure of your structure is.
Also, you might read this: the FAQ

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

Mayss Aliyeh
Mayss Aliyeh 2017년 5월 19일
What if in the struct I have 7 fields, and all of them are different sizes of doubles? I want to use them for the svmtrain. How can I solve my problem?

Mark Brandon
Mark Brandon 2017년 12월 5일
Consider a struct A, with fields a and b, each with a column of elements. You can convert the fields into column vectors using the following:
aVec = [A.a(:)] bVec = [A.b(:)]

Mohammad Basil
Mohammad Basil 2021년 3월 23일
How to change struct 1x2 to double 1x1?
  댓글 수: 4
Stephen23 2021년 3월 24일
편집: Stephen23 2021년 3월 25일
"How to change struct 1x2 to double 1x1?"
Clearly this is a MATLAB riddle, which is rather nice. One solution is:
'struct 1x2'
ans = 'struct 1x2'
ans(:) = ans-[15,5,-3,19,-9,15,0,0,0,1]
ans = 'double 1x1'
Note how it changes the data, exactly as requested. CODY enthusiasts can add their own solutions.

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

Community Treasure Hunt

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

Start Hunting!

Translated by