繁体   English   中英

Matlab圆锥图网格网格错误MATLAB:griddedInterpolant:NdgridNotMeshgrid3DErrId /不绘制任何内容

[英]Matlab coneplot meshgrid error MATLAB:griddedInterpolant:NdgridNotMeshgrid3DErrId / not plotting anythin

基本上我想在Matlab中使用锥图绘制3D矢量场。 我的脚本如下所示:

data=oommf2matlab('420x350x5-2_5-5.omf');
x=linspace(data.xmin,data.xmax,data.xnodes);
y=linspace(data.ymin,data.ymax,data.ynodes);
z=linspace(data.zmin,data.zmax,data.znodes);
[X,Y,Z]=meshgrid(y,x,z);
scale=4;
angle = data.datay ./ data.datax;
colors = angle;
figure;
coneplot(data.positionx,data.positiony,data.positionz,data.datax,data.datay,data.dataz,X,Y,Z,scale,colors);

oommf2matlab是用于将我的数据转换为matlab并返回如下结构的函数:

xmin: 0
ymin: 0
zmin: 0
xmax: 4.2400e-07
ymax: 3.5400e-07
zmax: 1.2500e-08
xnodes: 212
ynodes: 177
znodes: 5
datax: [212x177x5 double]
datay: [212x177x5 double]
dataz: [212x177x5 double]
positionx: [212x177x5 double]
positiony: [212x177x5 double]
positionz: [212x177x5 double]

运行此脚本给我一个错误

使用interp3时出错(第146行)输入网格不是有效的MESHGRID。

锥图错误(第144行)ui = interp3(x,y,z,u,cx,cy,cz,method);

omf2cone(第11行)锥图中的错误(data.positionx,data.positiony,data.positionz,data.datax,data.datay,data.dataz,X,Y,Z,比例,颜色);

如果通过调试跟踪到MATLAB:griddedInterpolant:NdgridNotMeshgrid3DErrId错误的错误,如下所示:

identifier: 
'MATLAB:griddedInterpolant:NdgridNotMeshgrid3DErrId'

message: 
Data is in MESHGRID format, NDGRID format is required.
Convert your data as follows:
P = [2 1 3];
X = permute(X, P);
Y = permute(Y, P);
Z = permute(Z, P);
V = permute(V, P);
F = griddedInterpolant(X,Y,Z,V)
cause: {0x1 cell}
stack: [3x1 struct]

这对我来说很奇怪,因为interp3已经按照错误提示进行了修复。

另外,如果我让锥图通过以下方式生成网格本身:

coneplot(data.datax,data.datay,data.dataz,X,Y,Z,scale,colors);

没有错误,但是没有创建任何图,仅是图的轴。

而不是使用meshgrid使用griddedInterpolant()代替,以便您的数据采用错误中标识的格式。

另外,部分错误可能在此行[X,Y,Z]=meshgrid(y,x,z); 相反,您想要[X,Y,Z]=meshgrid(x,y,z); 这可能会导致您描述的语法错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM