For loop isn't working, unsure as to why
조회 수: 1 (최근 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에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!