你好我有一个函数f:[0,1] ^ 2 - > R ^ 2来绘图。 f(x,y)=((x + 1)/ y, - (x + 1)/ y)。我必须在[0,1] ^ 2上创建一个由2 * N网格线和(M + 1)网格点组成的等距网格。
但我不知道如何为二维功能做到这一点。我可以为一维功能做到这一点:
% Generate equidistant grid on [0,1] and plot grid points
M=25; %number of internal grid points
xgrid = linspace(0,1,M+1)';
null = zeros(size(xgrid));
plot(xgrid,null,'.','MarkerSize',15)
% Sample function at the grid points and plot samples
ysample = xgrid+1;
plot(xgrid,ysample,'r.','MarkerSize',15);
title('Sampling a function on the grid')
hold off
任何人都可以告诉我如何为二维函数f:[0,1] - > R ^ 2?
答案 0 :(得分:2)
你想要达到这样的目标吗?
M = 25;
x = linspace(0, 1, M);
y = linspace(0, 1, M);
[mesh_x, mesh_y] = meshgrid(x, y);
v1 = (mesh_x + 1) ./ mesh_y;
v2 = -(mesh_x + 1) ./ mesh_y;
figure('Name', 'My Plot');
subplot(121);
surf(x, y, v1);
grid on;xlabel('x');ylabel('y');zlabel('v1');
subplot(122);
surf(x, y, v2);
grid on;xlabel('x');ylabel('y');zlabel('v2');