0

f(x)、g(x)、およびベクトルの 2 つの関数があるとします。

xval=1:0.01:2

これらの個々の x 値のそれぞれについて、2 つの関数 (または、列が x 値で行が y 値である行列) によって境界付けられた y 間隔をカバーする、y 値のベクトルを定義したいと考えています。

これを処理するループを作成するにはどうすればよいですか? 私自身はまったくわかりませんが、あなたの何人かはあなたの袖に何かを持っていると確信しています. 私はこの問題に数時間汗を流しています。

前もって感謝します。

4

1 に答える 1

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_gy_f == y_gy_f < y_g

デモンストレーションのために、この例をxval = 1 : 0.1 : 2と の 2 つの正弦波f = @(x) sin(2 * x)とに対して実行しg = @(x) sin(x) * 2ます。ポイントは を使用してプロットされplot(xval, rng, '*k');ます。 例

于 2013-10-26T18:01:59.667 に答える