matlab isosurface error: V must be a 3D array

matlab isosurface error: V must be a 3D array

我正在尝试使用等值面绘制由隐式函数描述的表面:

dvdt0=@(v_i,s_i,w_i)0.1*(-65-v_i)+9*n_i_inf(v_i).^4.*(-90-v_i)...
               +35*m_i_inf(v_i).^3.*h_i_inf(v_i).*(55-v_i)...
               +(s_i).*(v_rev_i-v_i) ...
               +g_M*(w_i.*(-90-v_i));
[v,s,w]=meshgrid(-80:0.1:50,0:0.01:1,1:0.01:1);

val=dvdt0(v,s,w);

fv=isosurface(v,s,w,val,0);

但是,我不断收到错误消息:

Error using isosurface (line 73)
V must be a 3D array.

Error in layer (line 9)
fv=isosurface(v,s,w,val,0);

由于 "val" 是通过在 meshgrid 上评估函数获得的,我仔细检查了 "val" 与 v,s,w 的大小相同,我不确定哪里出了问题.

考虑以下行:

[v,s,w]=meshgrid(-80:0.1:50,0:0.01:1,1:0.01:1);

最后一个参数是 1:0.01:1 等于 1。 将其更改为

1:0.01:2

例如。