24小时热门版块排行榜    

查看: 2365  |  回复: 12

阳阳岁月

木虫 (正式写手)

[交流] 新人请教大家一个关于matlab中函数interp3的问题,拜托指点一二。。 已有2人参与

请教大家一个问题,我用了interp3函数,程序如下:
x=[10 20 30 40];
y=[5 15 25 35];
z=[10 20 30 40];
v=[1000 800 2000 1500];
xi = [1 6 15 0];
yi = [19 40 33 49];
zi = [10 1 22 13];
Fi=interp3(x,y,z,v,xi,yi,zi,'linear',0)
然后出现了如下错误,不明白为什么。看了好多遍help文件中的例子也理解不透彻,高人给指点一下吧...谢谢啦~~~
Error using griddedInterpolant
The grid vectors do not define a grid of points that match the given values.

Error in interp3 (line 130)
        F = griddedInterpolant({X, Y, Z}, V, method,extrap);
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qwerty200696

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
数据出问题了吧。函数公式没问题啊。可以参考下范例。
[X,Y,Z,V] = flow(10);
figure
slice(X,Y,Z,V,[6 9],2,0);
shading flat
[Xq,Yq,Zq] = meshgrid(.1:.25:10,-3:.25:3,-3:.25:3);
Vq = interp3(X,Y,Z,V,Xq,Yq,Zq);
figure
slice(Xq,Yq,Zq,Vq,[6 9],2,0);
shading flat

这个是插值成功的,
2楼2016-01-27 21:45:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阳阳岁月

木虫 (正式写手)

引用回帖:
2楼: Originally posted by qwerty200696 at 2016-01-27 21:45:42
数据出问题了吧。函数公式没问题啊。可以参考下范例。
= flow(10);
figure
slice(X,Y,Z,V,,2,0);
shading flat
= meshgrid(.1:.25:10,-3:.25:3,-3:.25:3);
Vq = interp3(X,Y,Z,V,Xq,Yq,Zq);
figure
slice ...

谢谢你,这个例子是help中的原例子,和我的例子对比了下,我认为是x,y,z,v的数据出现了问题(已经遵循严格递增的要求)其他的不知道还有什么没做到的,您能否给个意见。再次谢谢您!!
3楼2016-01-27 22:17:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qwerty200696

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
3楼: Originally posted by 阳阳岁月 at 2016-01-27 22:17:41
谢谢你,这个例子是help中的原例子,和我的例子对比了下,我认为是x,y,z,v的数据出现了问题(已经遵循严格递增的要求)其他的不知道还有什么没做到的,您能否给个意见。再次谢谢您!!...

其实我也是第一次拿到这个函数呢,一起研究吧~
4楼2016-01-27 23:44:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qwerty200696

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
5楼2016-01-28 00:02:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阳阳岁月

木虫 (正式写手)

引用回帖:
4楼: Originally posted by qwerty200696 at 2016-01-27 23:44:23
其实我也是第一次拿到这个函数呢,一起研究吧~...

好的好的,还是谢谢你

发自小木虫Android客户端
6楼2016-01-28 00:28:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qwerty200696

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
困死了,先这样。
如果x,y的数据是二维的(楼主的数据),只要用interp2就可以了。。

clc;clear;close all;
x=[10 20 30 40];%相当于以10为步进,取4个点
y=[5 15 25 35];
z=[10 23 33 41;07 17 26 37;10 20 30 40;08 18 31 43;]; %z必须为4x4矩阵
%v=[10 23 33 41;07 17 26 37;10 20 30 40;08 18 31 43;];
surf(x,y,z)
title('Original data Plot');
xlabel('X'), ylabel('Y'), zlabel('Z'),
colormap; colorbar;axis([0 50 0 40 0 50]);

xi = [1:1:40];%以1为步进,取点
yi = [5:1:35];
[x2,y2]=meshgrid(xi,yi);%参考help案例产生新的xyz
t11=interp2(x,y,z,x2,y2,'cubic');
figure(2)
surf(xi,yi,t11)
title('After Fit data Plot');
xlabel('X'), ylabel('Y'), zlabel('Z'),
colormap, colorbar;axis([0 50 0 40 0 50]);

» 本帖已获得的红花(最新10朵)

7楼2016-01-28 00:45:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhoufang6885

金虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
v不是应该有64个数吗,是个4*4*4的矩阵?

发自小木虫Android客户端
8楼2016-01-28 00:49:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阳阳岁月

木虫 (正式写手)

送红花一朵
太感谢了,明天试试。好晚了,祝你好梦啊~~送你一朵花~~

发自小木虫Android客户端
9楼2016-01-28 00:50:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阳阳岁月

木虫 (正式写手)

送红花一朵
引用回帖:
7楼: Originally posted by qwerty200696 at 2016-01-28 00:45:42
困死了,先这样。
如果x,y的数据是二维的(楼主的数据),只要用interp2就可以了。。

clc;clear;close all;
x=;%相当于以10为步进,取4个点
y=;
z=; %z必须为4x4矩阵
%v=;
surf(x,y,z)
title('Original  ...

太感谢了~~送你一朵花~~
10楼2016-01-28 10:35:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 阳阳岁月 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见