How to make a for faster?
2 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I've the following code.
ix = ismember(idx_x(:),x(:));
iy = ismember(idx_y(:),y(:));
minimum = min(ix,iy);
for idx_=1:18:length(iy)
for idx=1:18:length(ix)
if minimum(idx)==1
%index =[index;idx];
altura_raio_direto = [altura_raio_direto; heights(idx)];
% saber indices de heights que fazem parte do bresenham
end
iii = iii+1;
disp(iii);
end
end
heights is an array of 90 000 positions, as well as iy and ix.
How can I make this faster?
Thanks!
1 件のコメント
Bruno Luong
2020 年 8 月 29 日
編集済み: Bruno Luong
2020 年 8 月 29 日
You must think what is your double-loops are looping on. As long as you still see the need of double-loop you are completely off of understanding ISMEMBER and linear indexing.
回答 (2 件)
KSSV
2020 年 8 月 29 日
idx_=1:18:length(iy) ;
idx=1:18:length(ix) ;
if min(idx)==1
altura_raio_direto = heights(idx) ;
end
altura_raio_direto = repmat(altura_raio_direto,1,length(idx_1)-1) ;
Bruno Luong
2020 年 8 月 29 日
編集済み: Bruno Luong
2020 年 8 月 29 日
ix = ismember(idx_x(:),x(:));
iy = ismember(idx_y(:),y(:));
ixy = ix & iy;
idx = 1:18:size(ixy,1);
altura_raio_direto = heights(idx(ixy(idx)));
%altura_raio_direto = repmat(altura_raio_direto,length(idx,1); % outer loop concatenate the same thing over and over
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!