matlab小白入门学习(一)画三维图和二维动图
好久前就打算搞matlab了,但是python实在太香,今天开始呢,就打算更新一个matlab学习的集合
我用的是2018a版,但是都差不多,matlab所有的文件都是.m结尾的,而且语言风格我感觉像python,所以这篇文章假定您已经至少学过一门语言
我们要做两个效果
效果一
步骤如下
代码一
x=-3:0.1:3;
y=-3:0.1:3;
[x1,y1]=meshgrid(x,y);
z=x1.^2+y1.^2;
surf(x,y,z)
解释一
x表示[-3,-2.9…… ,3]
y表示[-3,-2.9…… ,3]
meshgrid函数不好理解
我们来看这两幅图
plot()就表示将x1,y1在二维上画出来,和surf一样,加%号的绿色代码被注释了
可以看到,本来只能画成一条直线的x,y,完全可以画格子了就形成了一个底面,接下来只要一一对应z的坐标就行,正如一开始的动图一样
效果二
代码二
x=-2*pi:0.1:2*pi;
y=sin(x);
h=plot(x,y);
while true
x=x+0.1;
y=sin(x);
set(h,'xData',x,'yData',y)
drawnow;
end
解释二
这浓浓的python风格
plot就是刚刚所说的画二维图
而让他无限往右移动,我们只需要不断平移x坐标步长设为0.1,然后重新计算y值
最后set(),表示 set(句柄,属性名1,属性值1,属性名2,属性值2,…)