jojocleo 发表于 2007-7-16 13:11

对离散数据进行插值然后进行二重数值积分出错

对于二维离散数据,怎么积分好呢?我是先数据关于这两维分别进行插值,然后用dblquad进行积分,结果出现了错误,请帮忙指正一下,谢谢!
dblquad(@f_dy,0,pi,0,2*pi,1.e-6,@quadl);

function y=f_dy(theta_in,phi_in)
if theta_in <= pi/2
fid=fopen('c:/2.txt');                         % 2.txt是存储数据的文件
=fscanf(fid,'%f%f',);
fclose(fid);
a=a.';
ff=10.^((a-max(max(a)))/20);
l=length(ff(:,1));
for i=1:l
    theta1(i,1)=(i-1).*2; %theta向2度的间隔
end
for i=1:37
    f_phi(1,i)=interp1(theta1,ff(:,i),theta_in);
    phi1(1,i)=(i-1).*10;%phi向10度间隔
end
y=interp1(phi1,f_phi,phi_in);             %通过插值可以求得任意theta_in和phi_in时的值
else
    y=0;
end
运行出现错误
??? Subscripted assignment dimension mismatch.
Error in ==> f_dy at 17
    f_phi(1,i)=interp1(theta1,ff(:,i),theta_in);

[ 本帖最后由 eight 于 2007-7-16 13:14 编辑 ]

eight 发表于 2007-7-16 13:14

原帖由 jojocleo 于 2007-7-16 13:11 发表 http://www.chinavib.com/forum/images/common/back.gif
对于二维离散数据,怎么积分好呢?我是先数据关于这两维分别进行插值,然后用dblquad进行积分,结果出现了错误,请帮忙指正一下,谢谢!
dblquad(@f_dy,0,pi,0,2*pi,1.e-6,@quadl);

function y=f_dy(theta_in,phi ...


看置顶贴,查找“常见错误”一贴,然后自己调试

jojocleo 发表于 2007-7-16 13:35

不好意思,我刚才察看了一下常见错误http://forum.vibunion.com/forum/thread-46001-1-1.html,没有这种错误,能提示一下吗?谢谢了..

eight 发表于 2007-7-16 14:23

原帖由 jojocleo 于 2007-7-16 13:35 发表 http://www.chinavib.com/forum/images/common/back.gif
不好意思,我刚才察看了一下常见错误http://www.chinavib.com/forum/thread-46001-1-1.html,没有这种错误,能提示一下吗?谢谢了..

错误虽没有,但是可以类推一下,反正原则就一条:就是只能自己调试

jojocleo 发表于 2007-7-16 14:47

这个我知道,我只是想知道下你碰到过这种情况吗?这样做可行吗?dblquad能这样用吗?我是对这个命令不是很熟悉来咨询一下要是不可行就换方法了,谢谢!!
页: [1]
查看完整版本: 对离散数据进行插值然后进行二重数值积分出错