У меня есть функция MATLAB с именем nearInfectious2
, которая представляет шесть человек. Он принимает параметры массива x
координат, массива y
координат, различных состояний, связанных с этими координатами, "s"
для восприимчивых, "i"
для инфекционных и "r"
для восстановленных и, наконец, радиуса. Я хочу сохранить массив или массив (ы) с координатами x
и y
для тех людей, состояние которых равно "i"
. Это то, что у меня есть до сих пор, но оно также включает другие координаты, которые мне не нужны. Как я могу заставить его просто возвращать массивы с координатами, относящимися к тем, чье состояние "i"
? Вот что у меня есть на данный момент:
[x,y]=nearInfectious2([3,350,150,20,204,103],[92,9,200,5,350,34],["s","i","s","r","i","i"],20);
function [x,y] = nearInfectious2(x,y,states,radius)
for j=1:6
if states(j) == "i"
x(j)=x(j);
y(j)=y(j);
end
end
disp([x])
disp([y])
end
После того, как у меня есть массив координат, относящихся к людям, состояние которых "i"
, я хочу рассчитать расстояние (используя формулу обычного расстояния sqrt((x2 - x1)^2 + (y2 - y1)^2))
между любыми людьми, чье состояние "s"
, с теми, чье состояние "i"
, чтобы увидеть, находится ли оно на расстоянии меньше радиуса. Любая помощь приветствуется.