Matlabの双線形補間をどのようにコード化するのかを理解する上で問題があります。私たちの割り当ては私たちにこの機能を使用させています。Matlabの双線形補間(組み込み関数はありません)
B(X、Y)= Z_(IJ)+ *(X - XJ)+ B×(Y - イル)+ C×(X - XJ)(Y - イル)我々は「
2つの関数を再構築します。一つは係数を計算します(私は既に行いました。そしてそれは教授から 'チェック'アルゴリズムを渡しました)、そして関数を計算する別の関数です。以下は私が持っているコードです。 x、y、z、xi、yiが与えられていますが、a、b、cはすでに計算されています。
私の問題:この関数は実行されますが、ベクターを返すだけの場合は行列を返します。しかし、それは実際の混乱を招く1列、& 2行の正しい値を返します。また、与えられた値は正方行列(z)と1x2 xとyの値ですが、問題の後半部分では、正方行列ではないz = mxn行列が与えられます。そのために働いている。以下は私の現在のコードです。助けていただければ幸いですが、私はあなたに私に答えを与えることを期待していません!
%Given x = [0,1], y=[0,1], z=[0,1;2,4], a = 1, b = 2, c = 1, xi = [0,.5], yi = [0,.5]
function zi = bilinear_eval(x, y, z, a, b, c, xi, yi)
[m,n] = size(z);
for j = 1:length(xi)
for i = length(x)
zi(i,j) = z(j,j) + a*(xi(i) - x(j)) + b*(yi(i) - y(j)) + c*(xi(i) - x(j))*(yi(i) - y(j))
end
end
end
ここに 'python'や' C++'タグがあるのはなぜですか? –
ベクトル出力が必要な場合は、 'i'と' j'の両方で 'zi'のインデックスを作成すべきではありません。 – excaza
@taylorswift私はPythonとC++を知っています。誰かがそれらの形式で答えられるとすれば、私はMatlabにも推論することができます。しかし、私はあなたのためにそれらを削除しました。 – ovp