How to interpolate these values?

Hi everyone. I have a table like this:
Well, I have to calculate for example the value for (ALFA = 14,2-CD=150) that there isn't in this table. I tried to calculate the equation in Excel with polynomial regression and also with INTERP in Matlab but it isn't accurate. I don't know where I am wrong. Can you help me? Thanks a lot.

3 个评论

By the way, commas for decimals, e.g., ALFA = 14,2 are very prone to confusion in MATLAB forums since commas are used in MATLAB for other things.
Please show us, how you use INTERP. Otherwise we cannot guess what's going wrong.
I know. I'm sorry..

请先登录,再进行评论。

回答(3 个)

Matt J
Matt J 2013-1-25

0 个投票

You should use INTERP2 or griddedInterpolant.

2 个评论

Ok, let's try.
Matt J
Matt J 2013-1-25
编辑:Matt J 2013-1-25
Glad it worked. You may not be aware of the practice of Accepting answers. Please accept this one if it was what you needed.

请先登录,再进行评论。

Giacomo
Giacomo 2013-1-25
编辑:Giacomo 2013-1-25
Ok, I wrote:
load cl.txt
alfa=cl(2:61,1);
Reynolds=cl(1,2:8);
values=cl(2:61,2:8);
And if I ask
CL(150,14.2)= interp2(Reynolds,alfa,values,150,14.2)
it returns the right value. The new problem is that I have two matrices 17x11, Alpha and Re. Now, I have to calculate CL matrix (17x11) where (i,j) elements are calculated combined the (i,j) values of Alpha and Re through INTERP2 command.
Suggestions?
I tried with:
for i=1:length(r)
for j=1:n+1
CL(i,j) = interp2(Reynolds,alfa,values,Re(i,j),alpha(i,j));
end
end
and seems work.
Thank you, Matt.

1 个评论

You could also have done it with a single call to INTERP2 (which is faster) by doing
idx=sub2ind(size(Re),1:length(r),1:n+1);
CL(idx) = interp2(Reynolds,alfa,values,Re(idx),alpha(idx));

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Interpolation 的更多信息

提问:

2013-1-25

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by