#matlab #function #find
#matlab #функция #Найти
Вопрос:
В настоящее время я ищу, как заставить этот фрагмент кода работать в MatLab. Мне просто интересно, в какой форме должны быть xarr и yarr, чтобы возвращать значения, соответствующие координатам точек внутри окружности.
cir1=find((xarr-cirx1).^2 (yarr-ciry1).^2 <=cirr1^2);
Любая помощь приветствуется.
Комментарии:
1. существуют. Этот код выдаст вам, находится ли точка в окружности (без
find
)
Ответ №1:
xarr
и yarr
могут быть скалярами, векторами или матрицами любых размеров или размеров, НО они должны быть одинакового размера. So cir1
будет содержать индексы элементов в xarr
и yarr
что их соответствующая 2d точка лежит внутри окружности.
%% generating a grid of points
x = (-1:0.02:1)*2*cirr1 cirx1;
y = (-1:0.01:1)*2*cirr1 ciry1;
[xarr, yarr] = meshgrid(x, y);
% xarr and yarr are both 101 by 101
cir1=find((xarr-cirx1).^2 (yarr-ciry1).^2 <=cirr1^2);
%% generating a list of random points
points = bsxfun(@plus, (rand(1000, 2)-0.5)*2*cirr1, [cirx1, ciry1]);
xarr = points(:, 1);
yarr = points(:, 2);
% xarr and yarr are both 1000 by 1
cir1=find((xarr-cirx1).^2 (yarr-ciry1).^2 <=cirr1^2);