How to add an array in a structure as a new field?

14 次查看(过去 30 天)
Hi,
I'm using the following code to get a structure variable stats, that will have 23 + 1 = 24 fields.
stats = regionprops(bw,'All');
[labeled, nObject] = bwlabel(bw);
for i = 1:nObject
stats(i).Ratio = stats(i).MinorAxisLength/stats(i).MajorAxisLength;
end
The for loop is too slow, because I'm dealing with a huge number of regions, and I have to speed up my code. I tried with this line:
stats(:).AxisRatio=[stats.MinorAxisLength]'./[stats.MajorAxisLength]';
and many others, with no success.
Therefore, is there a way to add the 24th field to the structure more rapidly? In other words, I need the reverse operation than:
prop_array = [struct.prop_field]';
Thanks for your answers.

采纳的回答

James Tursa
James Tursa 2016-7-29
E.g.,
c = num2cell([stats.MinorAxisLength]./[stats.MajorAxisLength]);
[stats.Ratio] = c{:};

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Image Processing and Computer Vision 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by