我在理解如何在Matlab中對雙線性插值進行編碼時遇到了一些麻煩。我們的任務讓我們使用這個功能;Matlab中的雙線性插值(無內置函數)
B(X,Y)= Z_(IJ)+ A *(X - XJ)+ B *(Y - yi)的+ C *(X - XJ)(Y - yi)的
我們」重新構建兩個函數,一個計算係數(我已經完成了,它已經通過了教授的'檢查'算法)和另一個計算函數的函數。下面是我的代碼。 我們給出了x,y,z,xi和yi,而a,b,c已經被計算出來了。
我的問題:該函數運行但返回一個矩陣,它應該只返回一個向量。但是,它確實在第1列第1行中返回了正確的值,這真的讓我感到困惑。此外,我們給出的值是一個方形矩陣(z)和1x2 x和y值,但是,在問題的第二部分,我們給出一個z = mxn矩陣,它不是一個方形矩陣,所以我的代碼是n爲此而努力。以下是我目前的代碼。任何幫助將不勝感激,但我不希望你只是給我答案!
%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