create matrix from loop in matlab
조회 수: 1 (최근 30일)
이전 댓글 표시
from the following code,
h=200; k=200;
for i=1:400;
for j=1:400;
a= round(atan2(h-i,-(k-j))*180/pi);
b(i,j)=[a];
end
end
how can I get (i,j) values for 0<= a <=5 because I want use those indexes to read elements from a "data(i,j)" matrix. Moreover, I want to get (i,j) for several ranges, say 5<= a <=10, 10<= a <=15,...85<= a <=90. How can I perform this?
댓글 수: 0
답변 (2개)
Andrei Bobrov
2017년 8월 14일
[ii,jj] = ndgrid(1:400);
x = [ii(:),jj(:)];
a = round(atan2d(200 - ii(:), jj(:) - 200));
idx = discretize(a,0:5:90);
t = ~isnan(idx);
xx = x(t,:);
aa = a(t);
out_idx = accumarray(idx(t),(1:numel(aa))',[],@(x){xx(x,:)});
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!