У меня сетка определена как
[X, Y, Z] = meshgrid(-100:100, -100:100, 25); % z will have more values later
и две формы (в данном случае овалы):
x_offset_1 = 40;
x_offset_2 = -x_offset_1;
o1 = ((X-x_offset_1).^2./(2*Z).^2+Y.^2./Z.^2 <= 1);
o2 = ((X-x_offset_2).^2./(2*Z).^2+Y.^2./Z.^2 <= 1);
Теперь я хочу найти все точки, отличные от нуля, в или овал. Я пытался
union = o1+o2;
но так как я просто добавляю их, область перекрытия будет иметь значение 2 вместо желаемого 1.
Как мне установить все ненулевые записи в матрице на 1, независимо от их предыдущего значения?
(я пробовал normalized_union = union./union;
, но потом я получаю NaN
во всех 0 элементах, потому что делю на ноль ...)