如何使用模拟在3D中绘制Matlab中的波函数 OData.read({ requestUri: this.getODataUrl() + '$metadata' },
?
我使用的代码是:
n=a*cos(k*x-w*t)
答案 0 :(得分:2)
要绘制曲面,您需要一个数据网格。您创建的x,t
只是一行,每t
只有一个x
,但每个t
表面都有多个x
。< / p>
如果您将x
和t
的定义更改为:
[x,t]=meshgrid(-5:1:5,0:2:20);
您的代码运行并绘制:
答案 1 :(得分:0)
在此示例中,我通过向x
和t
添加点来提高分辨率。在动画中,我更改了k
的值,您也可以更改F。
示例强>
f=100;
w=2*pi*f;
a=1;
x=linspace(-5,5,50);
t=linspace(0,2,50);
for k = 0.05:0.01:2 % Change values of e.g. k
n = a.*cos(k.*x-w.*t); % Re-calculate n
pause(0.02) % pause to control animation speed
s = surf(x,t,repmat(n,[length(t),1])); % Use repmat to make Z 2D
title(['k = ',num2str(k)])
% Just some nice settings for surf plot
shading interp
lighting phong
camlight left; camlight right; camlight left; camlight right;
colormap copper
alpha(.8)
end