0

假设我有两个函数 f(x)、g(x) 和一个向量:

xval=1:0.01:2

对于这些单独的 x 值中的每一个,我想定义一个 y 值向量,覆盖由两个函数界定的 y 区间(或者可能是一个矩阵,其中列是 x 值,行是 y 值)。

我将如何创建一个可以为我处理这个问题的循环?我自己完全不知道,但我敢肯定你们中的一些人已经掌握了一些东西。到现在为止,我已经为这个问题出汗了几个小时。

提前致谢。

4

1 回答 1

3

由于您希望生成一个矩阵,我假设 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_gy_f < y_g. 这一切都已经处理好了。

为了演示,我为xval = 1 : 0.1 : 2两个正弦曲线f = @(x) sin(2 * x)g = @(x) sin(x) * 2. 这些点是使用 绘制的plot(xval, rng, '*k');例子

于 2013-10-26T18:01:59.667 回答