У меня есть серия кривых, построенных в формате x против y в MATLAB. Я хочу описать форму, которую они создают на своем пересечении в формате XYZ (2D-массив).
В MATLAB не существует простой функции для преобразования, поэтому мне интересно, есть ли у кого-нибудь быстрый обходной путь.
Вот простой пример. Я создаю сетку по умолчанию:
nx = 100; % Number of grid points
X = 1; % Default total grid size (cm)
dx = X/nx; % Default grid step size (cm)
Я создаю набор парабол и линий, используя свою сетку и масштабированную сетку:
x1 = (-nx/2:1:nx/2-1)*dx; % grid 1 (cm)
x2 = (-nx/2:1:nx/2-1)*dx*2; % grid 2 (cm)
y1 = x1.^2; % parabola 1
y2 = -x2.^2 + 2; % parabola 2
y3 = -1.5*x2-.5; % line 1
y4 = 1.5*x2-.5; % line 2
Наконец, я могу построить форму, которую хочу описать:
figure(1)
plot(x1,y1)
hold on;
plot(x2,y2)
hold on;
plot(x2,y3)
hold on
plot(x2,y4)
xlabel('x coordinate (cm)')
ylabel('y coordinate (cm)')
Обратите внимание, что мои координаты x и y указаны в сантиметрах. Я хочу создать 2D матрицу, в которой 1 появляются внутри области "глаз", а 0 появляются снаружи:
https://imgur.com/Zhysy1p