How to ignore values in a matrix that is out of bound when performing column 'find' in an array?
조회 수: 2 (최근 30일)
이전 댓글 표시
Z is a 1024X1024 matrix containing negative value in some pixels.
For each pixel in Z, I need to find the column from an array 0,5,10,15,20,25,30,35,40; Because of out of bound values existing in Z matrix, I get this error 'Subscript indices must either be real positive integers or logicals.' How do I set all the negative values in matrix Z to '0' or is there a way to get around this problem? Below is the code.
m=1024;
n=1024;
Th = (0,5,10,15,20,25,30,35,40);
i=1:length(Th)
ratioAB(:,:,i)=A./B % A and B are matrices for each Th
RF=ones(m,n);
for i=1:m
for j=1:n
Z2=Z(i,round(j));
col = find(Th > Z2,1,'first')-[1 0]
RF(i,j)= diff(cat(3,ratioAB(i,j,col)),[],3)/diff(Th(col))*(Z2 Th(col(1)))+ratioAB(i,j,col(1));
end
end
댓글 수: 2
Image Analyst
2012년 8월 21일
편집: Image Analyst
2012년 8월 21일
Lots of syntax errors, like in the definition of Th and RF. Plus what's with the definition of col? You're defining it as a scalar minus a 1 by 2 array. That's not a column number like you said you want.
채택된 답변
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!