先说第2个,匿名函数实际上是相当于定义了一个函数,不过是用的简洁方法而已
所以需要加“.”来运算,这个比较简单,是没什么问题的
第1个问题,有点复杂,楼上的我没细看,但好像不能运行,试试看:
clear all;clc;
f=@(x,y,z)exp(x+y+z)-(x+y+10*z);
[x,y,z]=meshgrid(-4:0.2:4);
v=f(x,y,z);
[d,m]=isosurface(x,y,z,v,0);
patch('faces',d,'vertices',m,'facevertexcData',spring(length(m)),'facecolor','b','edgecolor','flat');
view(3);axis equal;grid on;
你这是两个问题啊
1.需要解方程
clear
syms X Y A B
EQ='exp(X+Y+Z)=X+Y+100*Z'; %随便写的
x=linspace(-10,10,11);
y=linspace(-10,10,11);
z=zeros(11,11);
for i=1:length(x)
disp(i)
A=num2str(x(i));
for j=1:length(y)
B=num2str(y(j));
eq=subs(EQ,{X Y},{A B});
rootZ=solve(eq,'Z');
if (isempty(rootZ))
z(i,j)=NaN;
else
z(i,j)=double(rootZ);
end
end
end
[xx,yy]=meshgrid(x,y);
mesh(xx,yy,real(z))
2.
f=@(x,y)sqrt(x.^2+y.^2);
ezmesh(f)