У меня есть функция f(x,y)= Exp(-x^2-y^-2)(x^2+y^2)
. Я хотел бы посмотреть на проекцию этой функции на ось x в MATLAB.
Любые мысли о том, как лучше всего это сделать?
У меня есть функция f(x,y)= Exp(-x^2-y^-2)(x^2+y^2)
. Я хотел бы посмотреть на проекцию этой функции на ось x в MATLAB.
Любые мысли о том, как лучше всего это сделать?
что-то вроде этого:
xs = [];
ys = [];
zs = [];
for x = -10:0.1:10
for y = -10:0.1:10
xs = [xs x];
ys = [ys y];
z = f(x,y);
zs = [zs z];
end
end
figure; plot3(xs,ys,zs); %plots the full function over both dimensions
figure; plot(xs,zs,'rx'); %plots the projection onto the x axis
figure; plot(ys,zs,'rx'); %plots the projection onto the y axis
это происходит в диапазоне от -10 до 10 как по x, так и по y, но вы можете изменить это соответствующим образом.
У @Amro есть отличное решение, но вы также можете взглянуть на потрясающий теневой график Скотта Хирша из центрального файлового обмена MATLAB. Проверьте это:
>> f = @(x,y) exp(-x.^2 -y.^(-2)).*(x.^2+y.^2);
>> [X,Y] = meshgrid(-10:0.5:10,-10:0.5:10);
>> surf(X,Y,f(X,Y))
>> xlim([-11,11])
>> ylim([-11,11])
>> shadowplot x
>> shadowplot y
Вы можете манипулировать представлением, чтобы увидеть 2D-проекцию на x -ось:
f = @(x,y) exp(-x.^2 -y.^(-2)).*(x.^2+y.^2);
[X,Y] = meshgrid(-10:0.5:10,-10:0.5:10);
surf(X,Y,f(X,Y))
view(90,0), shading interp
xlabel X, ylabel Y, zlabel Z
Go To Y-Z View
, не делает ли это то же самое?
- person clarkson; 28.09.2015
view(0,90)
, X-Z — view(0,0)
, а Y-Z — view(90,0)
- person Amro; 28.09.2015