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

15 vues (au cours des 30 derniers jours)
Nut
Nut le 29 Juil 2016
Commenté : Nut le 1 Août 2016
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.

Réponse acceptée

James Tursa
James Tursa le 29 Juil 2016
E.g.,
c = num2cell([stats.MinorAxisLength]./[stats.MajorAxisLength]);
[stats.Ratio] = c{:};
  1 commentaire
Nut
Nut le 1 Août 2016
Absolutely perfect! Thank you very much!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Convert Image Type dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by