B站作者@基山督的 视频及源代码
clc %clc:清除命令窗口的内容,对工作环境中的全部变量无任何影响
clear all; %clear all:清除工作空间的所有变量,函数,和MEX文件
close all; %close all:关闭所有的Figure窗口
hn=figure('name','春心荡漾','MenuBar','None'); %产生一个窗口,名字是春心荡漾,并且没有菜单栏
set(hn,'color','w'); %将背景设为白色
for n=1:100 %循环100次
cla %即清除当前图形中的当前活动轴。其他轴不受影响。
t=num2str(n);%把n转化为字符串
Lf1='(-x)^(2/3)+(0.9*(3.3-(-x)^2)^0.5)*sin(';
Lf2='*pi*(-x))';
Left=[Lf1,t,Lf2]; %左侧的函数
ezplot(Left); %一维绘图函数
hold on %在作用下一幅图像时保留已有图像
Rf1='x^(2/3)+(0.9*(3.3-x^2)^0.5)*sin(';
Rf2='*pi*x)';
Right=[Rf1,t,Rf2]; %这样分开处理目的是通过t的变化产生动画效果
%左右两侧函数是一样的,只是将变量对称
ezplot(Right); %右侧的函数
hold on
axis([-2 2 -1.5 2.5]); %坐标轴范围
axis off %取消对坐标轴的一切设置
drawnow; %刷新一下 产生动画效果
title('春心荡漾')
end
clc
clear all;
close all;
x1=-3:0.01:0;
x2=0:0.01:3;%确定自变量的范围
hn=figure('name','春心荡漾','MenuBar','None');
set(hn,'color','w');
for t=1:50
cla
eval('yleft=(-x1).^(2/3)+(0.9*(3.3-(-x1).^2).^0.5).*sin(t*pi*(-x1));');
%yleft=(-x1).^(2/3)+(0.9*(3.3-(-x1).^2).^0.5).*sin(t*pi*(-x1));
%或者直接计算函数
eval('yright=x2.^(2/3)+(0.9*(3.3-x2.^2).^0.5).*sin(t*pi*x2);');
%eval函数可以直接把字符串当作命令执行,直接算出左边函数和右边函数的值
plot(x1,yleft,'*r',x2,yright,'*r'); %*r是控制颜色(详见颜色对照表),的组成心的符号(+、-、*\:)
axis([-1.8 1.8 -1.5 2.5]);
axis off; %去除坐标
pause(0.1); %用暂停形成动画效果
title('跳动的心'); %刷新
end
clc;
它创建一个窗口,其各种属性都是使用默认设置。例如它创建的窗口立即成为当前窗口,并显示在其它窗口之上。直到新的窗口被创建或者其它窗口被唤醒(called)。
figure(‘PropertyName’,propertyvalue,…),则可以指定某些属性。
例如:
figure(h),则根据参数 h 的不同而表现不同。
如果 h 是先前一个窗口的句柄(handle),则figure(h)相当于唤醒了该窗口,使得该窗口为当前窗口;
如果 h 并不是某个窗口的句柄,但它是一个整数,则 figure(h)
创建一个句柄为 h 的新窗口。
h= figure(…),相当于前面三种用法中在创建一个窗口的同时,返回该窗口的句柄。
注释:句柄:句柄是matlab语言独有的参数,相当于C语言的指针。
句柄分为多种,如函数柄,对象柄,图形柄等。
图形句柄就指一个图形,在生成图形时同时得到一代号,如语句 h=plot(x,y),h 就是一个图形句柄,在后来的某一个地方就可用h代表这个图,如 set(h,…),对这个图形进行再设置。
set(Swarmscope,‘EraseMode’,‘xor’,‘MarkerSize’,12)
Swarmscope为句柄名,'EraseMode’为句柄图像的擦拭方式,为xor,逻辑符号——或者,MarkerSize为句柄尺寸,大小为12
set(hn,‘color’,‘w’)
将背景色设为白色
将n由数字转化为字符型
还有其他的见
https://blog.csdn.net/jianxi602/article/details/35569095@流程序中的运动者
https://blog.csdn.net/mytzs123/article/details/78656072@mytzs123
axis([xmin,xmax,ymin,ymax,zmin,zmax])
用此命令可以控制坐标轴的范围.
与axis相关的几条常用命令还有:
axis auto 自动模式,使得图形的坐标范围满足图中一切图元素
axis equal 严格控制各坐标的分度使其相等
axis square 使绘图区为正方形
axis on 恢复对坐标轴的一切设置
axis off 取消对坐标轴的一切设置
axis manual 以当前的坐标限制图形的绘制
将还未处理完的图像实时的显示出来,可以理解为立即执行的plot,变化的plot。
当代码执行时间长,需要反复执行plot时,Matlab程序不会马上把图像画到figure上,这时,要想实时看到图像的每一步变化情况,需要使用这个语句。
eval函数可以直接将字符串当作命令执行