用Matlab画数学图形

和C/C++一样,matlab也是一种编程语言。不同点在于matlab提供了很多方便强大的库,从而减少了你的代码量。

理论上matlab能完成的事情,用C/C++也可以完成,只不过别人已经造好了轮子,我们直接拿来用就行了,没必要重复造轮子,例如用C/C++完成一个三阶矩阵的乘法,都会很费劲,matlab就一行代码的事。所以科研和工程中,经常用matlab验证理论可行性后,再用C/C++编写。

因为Matlab也是一种编程语言,所以变量、分支、循环、函数这些语法Matlab之中当然也都是有的。这些都没什么稀奇的,本文主要来介绍一下Matlab的画图功能,这么短的代码就能画出下列图形,是其他语言不容易做到的。

x = -3:0.1:3;
y=x.^2;
plot(x,y,'green-o')

image

y= [75 91 105 123.5 131 150 179 203 226 249 281.5];
x = 2000:2010;
bar(x,y);

image

theta = 0:pi/50:6*pi;
x=cos(theta);
y=sin(theta);
z=0:300;
plot3(x,y,z);

image

x = -4:0.1:4;
y1 = cos(x);
y2 = cos(2.*x);
y3 = cos(4.*x);

subplot(2,2,1);
plot(x,y1);
title('y=cos(x)');

subplot(2,2,2);
plot(x,y2);
title('y=cos(2x)');

subplot(2,2,[3,4]);
plot(x,y3);
title('y=cos(4x)');

image

x=-3:0.1:3;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
surf(X,Y,Z);

image

t = 0:pi/50:2*pi;
X=cos(t);
Y=sin(t);

plot(X,Y);
hold on;
axis equal;

lineX=[0,1];
lineY=[0,0];
h=plot(lineX,lineY);

theta = 0;
while true
    theta=theta+0.05;
    lineX(2)=cos(theta);
    lineY(2)=sin(theta);
    set(h,'XData',lineX,'YData',lineY);
    drawnow;
end

在matlab中圆中的半径会绕着中心旋转。

image

posted @ 2021-03-17 17:01:09
评论加载中...
发表评论