x和y的离散域,点之间的距离为0.01

时间:2019-07-27 23:30:51

标签: matlab discretization

我正在寻找使用x和y变量根据公式计算数组的方法,x的域是(0,50),y的是(0,30)。我被要求以点之间的0.01间隔离散化x和y的域,然后计算L(x,y)(我有一个公式)(这将是图形的点,最终我正在寻找最小点点之间的长度)

我不确定我需要在脚本中定义什么,因为如果我将x和y定义为间隔为0.01的数组,它们最终将变得不均匀,并且由于数组不均匀而无法计算

%change these values for A, B and C positions
Ax=10;
Ay=5;

Bx=15;
By=25;

Cx=40;
Cy=10;


x = 0:0.01:50; % Array of values for x from 0-50 spaced at 0.01
y = 0:0.01:30; % Array of values for y from 0-30 spaced at 0.01


%length of point P from A, B and C and display
Lpa=sqrt((Ax-x).^2+(Ay-y).^2);
Lpb=sqrt((Bx-x).^2+(By-y).^2);
Lpc=sqrt((Cx-x).^2+(Cy-y).^2);

L=Lpa+Lpb+Lpc

我收到一个错误消息,告诉我两个矩阵甚至都不起作用,但我不确定如何定义一个矩阵,该矩阵将导致我追求的最小x和y值。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您要为Lx的每个可能对计算y。换句话说,对于x = 0的第一个值,将为0至30之间的所有L值计算y,然后对于x = 0.01的下一个值,将执行一样等等。

MATLAB有一个非常酷的功能,称为meshgrid,可以为每对xy创建一个矩阵。因此,在生成xy之后,将代码更改为以下内容即可获得L-

的2D矩阵
[X, Y] = meshgrid(x, y)

%length of point P from A, B and C and display
Lpa = sqrt((Ax - X).^2 + (Ay - Y).^2);
Lpb = sqrt((Bx - X).^2 + (By - Y).^2);
Lpc = sqrt((Cx - X).^2 + (Cy - Y).^2);

L = Lpa + Lpb + Lpc