Matlab,2点之间有n点的直线

标签 matlab linear-interpolation

我想创建一个需要 2 个数据点的函数:(x1, y1)(x2, y2)

然后我想返回一个函数f,它是中间有N个点的点之间的直线。

如果我获取 2 个数据点的 x 和 y 坐标,那么我可以这样做:

step_size = (x2 - x1) / N;
range = x1:step_size:x2;

然后:

f = ((y2 - y1)/(x2 - x1)) * range + ((y1/x1) * ((x2 - x1)/(y2 - y1)));

这样就够了吗?

此外,我一直在网上搜索,但找不到任何现有的函数可以做到这一点。但如果有的话请指教。

最佳答案

您正在寻找linspace。例如,定义

x1 = 0; y1 = 0; x2 = 4; y2 = 4; npoints=6;

然后

[linspace(x(1),y(1),npoints);linspace(x(2),y(2),npoints)]

评估为:

ans =

         0    0.8000    1.6000    2.4000    3.2000    4.0000
         0    0.8000    1.6000    2.4000    3.2000    4.0000

这可能不完全是您想要的,但我想您可以弄清楚其余的。

此外,如果您输入 edit linspace.m,您可以看到该函数是如何实现的(如果您想创建自己的版本,也许可以处理 2 元素向量)。

关于Matlab,2点之间有n点的直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13209373/

相关文章:

matlab - 为什么 fprintf 命令在 MATLAB 中显示 >>?

r - R 中的 log2 : How to calculate the exponent and mantissa

interpolation - 如何在两组不规则数据之间插值?

sql - 在 SQL 中插入值的最佳方法

javascript - 如何通过已知点数组插入某些数据点中的值?

java - 双线性插值异常

Matlab:是否可以通过混合初始条件和终止条件对 ode 系统进行数值求解?

matlab - 根据范围索引从矩阵中提取行?

search-path - 当当前目录更改时,Matlab addpath() 不会保留在路径上?

java - MATLAB的interp1函数在J2ME中的实现