我需要将函数f的每个分量绘制成正方形Q = [0,1] x [0,1]
f = @(x,y) [-0.5*x + 0.25 ; -0.5*y + 0.25];
如果我有标量函数(使用一个组件)g:
g = @(x,y) -0.5*x + 0.25;
情节很简单,具体如下:
xxx=[0:0.01:1];
yyy=[0:0.01:1];
[xxx yyy]=meshgrid(xxx,yyy);
surfc(xxx,yyy,g(xxx,yyy))
但是,如何在同一组Q上绘制矢量函数f的每个分量?
f = @(x,y) [-0.5*x + 0.25 ; -0.5*y + 0.25];
答案 0 :(得分:0)
如果您很乐意将结果可视化为矢量字段,那么您可以这样做:
f = @(z) -0.5 .* z + 0.25;
[X, Y] = meshgrid (0:0.01:1, 0:0.01:1);
quiver (X, Y, f(X), f(Y));
如果你的f_x和f_y组件不一定相同,你可以拆分它们(暗示了meshgrid步骤):
f_x = @(x) -0.5 .* x + 0.25;
f_y = @(y) -0.5 .* y + 0.25;
quiver (X, Y, f_x(X), f_y(Y));
如果你真的,真的需要将它们作为一个单一的非向量化函数,那么你可以使用arrayfun解决这个问题:
f = @(x,y) [-0.5*x + 0.25 ; -0.5*y + 0.25];
quiver(X, Y, arrayfun(@(x) f(x,0)(1), X), arrayfun(@(y) f(0,y)(2), Y));
结果: