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

京公网安备 11010502036488号