MATLAB:用向量值输入绘制函数

MATLAB:用向量值输入绘制函数,matlab,Matlab,用向量值输入绘制函数图的最简单方法是什么?例如: f = @(x) x(1)^2 + x(1)*x(2) + x(2)^3 f = @(x) [x(2)*cos(x(1)); x(1)*sin(x(1))] 同样,如果f是一个向量场,如果f有向量值输入,如何使用quiver来绘制它。例如: f = @(x) x(1)^2 + x(1)*x(2) + x(2)^3 f = @(x) [x(2)*cos(x(1)); x(1)*sin(x(1))] 考虑使用(对功能进行修改) 我发现有一个函

用向量值输入绘制函数图的最简单方法是什么?例如:

f = @(x) x(1)^2 + x(1)*x(2) + x(2)^3
f = @(x) [x(2)*cos(x(1)); x(1)*sin(x(1))]
同样,如果
f
是一个向量场,如果
f
有向量值输入,如何使用
quiver
来绘制它。例如:

f = @(x) x(1)^2 + x(1)*x(2) + x(2)^3
f = @(x) [x(2)*cos(x(1)); x(1)*sin(x(1))]
考虑使用(对功能进行修改)


我发现有一个函数
arrayfun
基本上满足了我的需求:

[X,Y] = meshgrid(linspace(-2,2));
Z = arrayfun(@(x,y) f([x;y]),X,Y);
mesh(X,Y,Z)

因此,
f
将应用于
X
Y

中的每一对。目前还不清楚您的函数到底应该是什么。$f(x)$是三个变量的函数,即$f(x)=x_1^2+x_1 x_2+x_2^3$?如果是这样,那么您应该写入
f=@(x1,x2,x3)x1.^2+x1.*x2+x2.^3
,然后为
x1
x2
传递向量<如果
x3
f
写成
f=@(x,y)x.^2+x.*y+y.^3
,那么我在绘制它时不会有问题。我的问题是,如果定义如上,是否可以绘制
f
。它仍然是一个函数
R^2->R
。这只是因为输入是一个向量(我意识到我把你的函数错误地表示为3个变量的函数)。但我们仍然不清楚你所说的“输入是向量”是什么意思。在$f$的定义中提到x(1)和x(2)表明x已经是一个向量。你的意思是输入是一个nx2数组吗?