В какой форме должны быть xarr и yarr, чтобы возвращать все координаты, удовлетворяющие уравнению

#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);
  

введите описание изображения здесь