好久前就打算搞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,…)