Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

How to convert 'Structure' ?!

Asked by Mariam Sheha

Mariam Sheha

on 29 Jun 2013
Accepted Answer by Walter Roberson

Walter Roberson

Hi everybody;

I am trying to get feature value out of structure array..

for example:

glcms = graycomatrix(CG,'Offset',[0 1]);

Cont_RGB = graycoprops(glcms,'Contrast');

F=Cont_RGB;

F= Contrast: 0.2546 % i wana to remove word contrast and get the number only!

How can i get the number?

Thank you

0 Comments

Mariam Sheha

Mariam Sheha

3 Answers

Answer by Walter Roberson

Walter Roberson

on 30 Jun 2013
Accepted answer

If your

Cont_RGB = graycoprops(glcms,'Contrast');

is returning a Cont_RGB which is a structure array, and you want to extract the field named "Contrast" from the first member of that structure array, you would use

Cont_RGB(1).Contrast

and in the cast where the structure array only has a single member (so Cont_RGB(2) does not exist) then you can abbreviate that to

Cont_RGB.Contrast

In the above, the period is part of the syntax.

If Cont_RGB is a structure array, so Cont_RGB(2).Contrast and so on exist, and you are trying to get a vector equivalent to

[Cont_RGB(1).Contrast Cont_RGB(2).Contrast Cont_RGB(3).Contrast ....]

then use

[Cont_RGB.Contrast]

In this, the [] and the period are part of the syntax.

1 Comment

Mariam Sheha

Mariam Sheha

on 30 Jun 2013

yes, it works thanks alo0o0ot :)

Walter Roberson

Walter Roberson

Answer by Matt Eicholtz

Matt Eicholtz

on 29 Jun 2013

Try

F.Contrast

2 Comments

Mariam Sheha

Mariam Sheha

on 29 Jun 2013

can you tell me what does 'F','contrast' represent

Walter Roberson

Walter Roberson

on 30 Jun 2013
Cont_RGB = graycoprops(glcms,'Contrast');
Cont_RGB.Contrast

The "." between the variable name and "Contrast" is literal, part of the syntax.

Matt Eicholtz

Matt Eicholtz

Answer by Image Analyst

Image Analyst

on 29 Jun 2013
theNumber = F.Contrast;

3 Comments

Mariam Sheha

Mariam Sheha

on 29 Jun 2013

you don't understand my point...

i had already get the result like that

F=

Contrast: 0.2546

% i want to remove word 'contrast' and get the number alone...

I had already reach it by converting structure to cell using function (_struct2cell_)

Then convert cell to matrix using function (cell2mat)

but it's about 200 feature and it's too long to pass it through 2 steps for each...

I wander if their is simple step rather than using two steps?!!

Image Analyst

Image Analyst

on 30 Jun 2013

All 3 people answered with the same thing, and you accepted the third response, so I think we all knew what you meant. Hopefully you're now using Walter's answer, and are not doing unnecessary operations like converting to a cell array and then converting the cell array to a matrix. You may find it helpful to read the FAQ: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F

Mariam Sheha

Mariam Sheha

on 30 Jun 2013

Thanks for you all replaying me,

Walter's mentioned his answer,and so i get the point once i read discussion..

yes i do using the method now instead of using useless operation..

Also, Thanks for the doc. it's helpful

Really you are all helpful and creative...:)

Image Analyst

Image Analyst

Contact us