フィルターのクリア

Why is my if statement making the values of a previous array disappear?

1 回表示 (過去 30 日間)
sasha
sasha 2014 年 6 月 17 日
コメント済み: Image Analyst 2014 年 6 月 17 日
My code basically looks like:
for x = 1:xmax
for y = 1:ymax
for l = 1:xmax
for m = 1:ymax
d(x,y,l,m) = (x-l)^2 + (y-m)^2
if f(x,y,1) ~=f(x,y,5)
%lots of new defined values
else
break
end
end
end
end
end
There is no problem when I remove the if statement, I get the correct array for d. But when the if statement is there the output of d is all zeros. Does anyone know why d is not calculated when I have the conditional in there since it's outside of the if?

回答 (2 件)

A Jenkins
A Jenkins 2014 年 6 月 17 日
break will terminate your for loop, and it won't continue all the way to ymax.
Perhaps you mean you use continue? Or just leave the else case out altogether?
  1 件のコメント
sasha
sasha 2014 年 6 月 17 日
There was one more loop that I didn't put in that is in the code:
for t= 1:tmax
for x = 1:xmax
for y = 1:ymax
for l = 1:xmax
for m = 1:ymax
d(x,y,l,m) = (x-l)^2 + (y-m)^2
if f(x,y,1) ~=f(x,y,5)
%lots of new defined values
else
break
end
end
end
end
end
end
I want the if statement to hold for all x and y and I want the time loop to be stopped if that condition is no longer true.
Is this the correct way to write it?

サインインしてコメントする。


Image Analyst
Image Analyst 2014 年 6 月 17 日
How would the f array ever change? And, have you tried stepping through the code with the debugger? That's what I do, and everyone else would do. Try this: http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/
  2 件のコメント
sasha
sasha 2014 年 6 月 17 日
In the portion that I didn't write out because it's too long and not entirely relevant there is a section that says:
f(x,y,t+1) = f(x,y,t)+g(x,y,t)
where g(x,y,t) is also defined. I also start off defining f(x,y,1). So the f array starts off not the same and will eventually get to equilibrium.
Image Analyst
Image Analyst 2014 年 6 月 17 日
And what about my second question?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by