一条主线相交的多条曲线

时间:2018-06-20 04:48:51

标签: matlab parallel-processing vectorization

假设我有一组线/曲线,并且想一次找到每个与选定线相交的位置。假设我现在定义了线/曲线的所有方程式,是否可以在matlab中向量化此操作?

与之相交的线:

y_i=m_i*x+b_i; % i integer 

主线

y=M*x+B;

就像我显示的数字一样。 enter image description here 我知道我可以通过以下方式一对一进行操作:

M*x_inter+B=m_i*x_inter+b_i;
y_inter=M*x_inter+B;

,然后将其置于for循环中,但是由于此方法的实际使用是针对数百行,因此将操作向量化的效率更高。

1 个答案:

答案 0 :(得分:0)

您可以将所有m_i和b_i加入列向量中,然后立即求解。假设您有3行:

nlines = 3;
Bcol = ones(nlines ,1)*B; %your B value put into a column
Mcol = ones(nlines ,1)*M;

x_inter = (b - Bcol)./( Mcol - m); %this b contains all your b_i values, the same for m
y_inter = Mcol .*x_inter + Bcol 

显然x_intery_inter将是数组而不是单个值