Теперь у меня есть скалярное поле в трехмерном пространстве, которое являетсяРисование скалярного поля в MATLAB
v=-1*(1-(b./sqrt(x.^2+y.^2+z.^2)).^3).*z
только для sqrt(x.^2+y.^2+z.^2)>b
;
иначе v=0
Теперь я хочу обратить скалярное поле с помощью функции "среза"
Мой код:
[x,y,z]=meshgrid(-10:1:10);
b=1;
%v=-1*(1-(b./sqrt(x.^2+y.^2+z.^2)).^3).*z;
if ((x.^2+y.^2+z.^2)>=b)
v=-1*(1-(b./sqrt(x.^2+y.^2+z.^2)).^3).*z;
else
v=0
end
h=slice(x,y,z,v,[],[],-10:1:10);
set(h,'EdgeColor','none','FaceColor','interp')
alpha(.5)
Но в конце концов я получаю эти ошибки:
Error using griddedInterpolant The grid vectors do not define a grid of points that match the given values.
Error in interp3 (line 142) F = griddedInterpolant(X, Y, Z, V, method,extrap);
Error in slice (line 100) vi = interp3(x,y,z,v,xi,yi,zi,method);
Error in Electromagnetism_graph2 (line 11) h=slice(x,y,z,v,[],[],-10:1:10);
Что случилось?