For loop isn't working, unsure as to why
2 次查看(过去 30 天)
显示 更早的评论
In the following code, 'forrest', 'shrub', 'sav', 'grass' and 'agri' have all been initialized at 35*43 matrices of NaNs.
'lut' and 'D10weight' are also 35,43 matrices. The idea is that each of 'forrest', 'shrub', 'sav', 'grass' and 'agri' get values from 'D10weight' where 'lut' equals a certain number. However they all remain as NaNs and I am unsure why.
for i = 1:35;
j = 1:43;
if lut(i,j) == 1
forrest(i,j) = D10weight(i,j);
end
if lut(i,j) == 2
shrub(i,j) = D10weight(i,j);
end
if lut(i,j) == 3
sav(i,j) = D10weight(i,j);
end
if lut(i,j) == 4
grass(i,j) = D10weight(i,j);
end
if lut(i,j) == 5
agri(i,j) = D10weight(i,j);
end
end
0 个评论
采纳的回答
James Tursa
2016-4-19
编辑:James Tursa
2016-4-19
I think you meant for this to be a double for loop. As coded, you only have one for loop and j is a vector. E.g., is this what you meant?
for i = 1:35;
for j = 1:43;
if lut(i,j) == 1
forrest(i,j) = D10weight(i,j);
end
if lut(i,j) == 2
shrub(i,j) = D10weight(i,j);
end
if lut(i,j) == 3
sav(i,j) = D10weight(i,j);
end
if lut(i,j) == 4
grass(i,j) = D10weight(i,j);
end
if lut(i,j) == 5
agri(i,j) = D10weight(i,j);
end
end
end
更多回答(1 个)
Image Analyst
2016-4-19
Here is a way 100% guaranteed to help you solve it: http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/
Have you tried actually stepping through line by line and checking the value of lut(i,j) and seeing why your "if" statements never get true and so never assigns anything?
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!