Debug this: for loop

Hi, I have a problem with for loop in my case
for i = 1:P
SrJasnosc(i) = props2(i).MeanIntensity;
end
and next operation is
I = find(SrJasnosc > 400);
when those two parts is contain in funtion to analize series of pictures matlab give me an error:
??? Undefined function or variable "SrJasnosc".
Error in ==> srednia at 18
I = find(SrJasnosc > 400);
when I put it to command window to check on one picture is ok work fine, but otherwise its crush by error, after 3 hours of thinking on it I give up, please help, sorry for bad english.
code for function :
function out = srednia(poOdj, IMy)
[O P] = bwlabel(poOdj);
props2 = regionprops(O,IMy,'MeanIntensity');
for i = 1:P SrJasnosc(i) = props2(i).MeanIntensity; end
I = find(SrJasnosc > 400);
out = ismember(O, I);

回答(3 个)

Matt Tearle
Matt Tearle 2011-2-23

1 个投票

Quick diagnostic: display the value of P (after it's returned by bwlabel)
Jan
Jan 2011-2-23
Btw: This can be done more efficiently:
for i = 1:P
SrJasnosc(i) = props2(i).MeanIntensity;
end
==>
SrJasnosc = [props2.MeanIntensity];
This method defines SrJasnosc even if props2 is an empty struct as long as it has the needed field.
gck
gck 2011-2-23

0 个投票

Its done, problem was the value of P, sometimes pictures are empty so in that situation P is < 1 so loop never start and "SrJasnosc" not existed, before the loop I put code "SrJasnosc = zeros(1,P);" and this is solve the problem.
Thanks for help and quick ansver !

2 个评论

Yup, that's what I was guessing
Please Accept Matt's answer.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

提问:

gck
2011-2-23

Community Treasure Hunt

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

Start Hunting!

Translated by