假设我有两个函数f(x),g(x)和一个向量:
xval=1:0.01:2
对于这些单独的x值中的每一个,我想要定义y值的向量,覆盖由两个函数界定的y-区间(或者可能是列是x值的矩阵,行是y值)。
我如何创建一个可以为我处理这个问题的循环?我完全不知道自己,但我相信你们中的一些人能够拥有一些东西。到现在为止,我已经为这个问题大汗淋漓了几个小时。
提前致谢。
答案 0 :(得分:3)
由于您希望生成矩阵,我假设f(x)和g(x)之间的值的数量对于每个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
。这一切都已经得到了解决。
对于demsonstration,我为xval = 1 : 0.1 : 2
和两个正弦曲线f = @(x) sin(2 * x)
和g = @(x) sin(x) * 2
运行此示例。使用plot(xval, rng, '*k');
绘制点。