从单个方程输出/生成一组点 - Python,JS,Matlab

3
我开始使用一组坐标,然后用近似函数表示它们(傅里叶级数)。生成的函数是正弦和余弦波的总和: 0.3sin(2x) + 1.7(sin5x) + 1.8(sin43x)... 我想拿到这个新生成的函数并生成一组新的坐标。如何从0-400的每个整数x值中生成点?
注:我有2个复杂的(2D)函数。
目标:获取一个函数 -> 为每个整数生成该函数的点。

1
当你说“生成点”时,你的意思是指更多的内容吗?X = 0:400; fh = @(x) 0.3*sin(2*x) + 1.7*sin(5*x) + 1.8*sin(43*x); Y = fh(X); - SecretAgentMan
你已经有了函数,例如 y = mx + c。同时你也有了 x 的值,对于我的情况是从 0 到 400。那么我该如何找到每个相应 x 值的 y 值,并将它们放入一个列表中呢? - CWrecker
1
(1,3) ,(2,4),(3,5)......等等。 - CWrecker
1
上面的评论中的Matlab代码不是这样做的吗?如果你想要一个401x2的数组,那么P = [X(:) Y(:)]就可以得到。 - SecretAgentMan
“插值(interpolation)”标签有什么作用? - SecretAgentMan
显示剩余5条评论
2个回答

3
这段代码使用函数句柄(:)来强制生成列向量((:)'会生成行向量)。
该代码简单地使用给定的方程(对正弦和余弦求和)来计算每个给定x坐标对应的y坐标。
% MATLAB R2018b
X = 0:400;                                                % x = 0, 1, 2, ..., 400                         
fh = @(x) 0.3*sin(2*x) + 1.7*sin(5*x) + 1.8*sin(43*x);           
Y = fh(X);

P = [X(:) Y(:)];

请注意,size(P) 返回 401 x 2。你会发现Y 的大小取决于X的大小,即一个行向量。可以使用“.”X声明为列向量,如X = (0:400)',其中“.”执行转置操作,请查看MATLAB的文档,特别是入门指南语言基础。相关的MATLAB函数有:sincos

1

Matlab 代码

X = 0:400; 
fh = @(x) 0.3*sin(2*x) + 1.7*sin(5*x) + 1.8*sin(43*x); 
Y = fh(X);

P = [X, Y]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接