假设我有两个函数 f(x)、g(x) 和一个向量:
xval=1:0.01:2
对于这些单独的 x 值中的每一个,我想定义一个 y 值向量,覆盖由两个函数界定的 y 区间(或者可能是一个矩阵,其中列是 x 值,行是 y 值)。
我将如何创建一个可以为我处理这个问题的循环?我自己完全不知道,但我敢肯定你们中的一些人已经掌握了一些东西。到现在为止,我已经为这个问题出汗了几个小时。
提前致谢。
假设我有两个函数 f(x)、g(x) 和一个向量:
xval=1:0.01:2
对于这些单独的 x 值中的每一个,我想定义一个 y 值向量,覆盖由两个函数界定的 y 区间(或者可能是一个矩阵,其中列是 x 值,行是 y 值)。
我将如何创建一个可以为我处理这个问题的循环?我自己完全不知道,但我敢肯定你们中的一些人已经掌握了一些东西。到现在为止,我已经为这个问题出汗了几个小时。
提前致谢。
由于您希望生成一个矩阵,我假设 f(x) 和 g(x) 之间的值的数量对于 each 应该是相同的xval
。让我们称之为数值的数量n_pt
。然后,我们也知道结果矩阵的维度是多少rng
。
n_pt = 10;
xval = 1 : 0.01 : 2;
rng = zeros(n_pt, length(xval));
现在,进入循环。一旦我们知道 f(x) 和 g(x) 返回的 y 值是什么,我们就可以在它们之间linspace
给出n_pt
等距的点。
for n = 1 : length(xval)
y_f = f(xval(n))
y_g = g(xval(n))
rng(:, n) = linspace(y_f, y_g, n_pt)';
end
这很好,因为linspace
您无需担心y_f > y_g
,y_f == y_g
或y_f < y_g
. 这一切都已经处理好了。
为了演示,我为xval = 1 : 0.1 : 2
两个正弦曲线f = @(x) sin(2 * x)
和g = @(x) sin(x) * 2
. 这些点是使用 绘制的plot(xval, rng, '*k');
。