Matlabwilliam hill官网
直播中

CALLMEXX

7年用户 3经验值
私信 关注
[问答]

MATLAB的动画制作问题,刚申请的号,没有什么积分,有没有老师给讲讲,非常感谢!

matlab新手,我想制作一个动画,用movie这种,一个画面一个画面的播放。附,我程序出的图
我画的这个图是在子程序b=-10/pi画的,我想让这个b(度数)的数值循环改变,从-10/pi到0在到10/pi一个循环,这出来的图会一直改变,用M(i)=getframe每1°记录一个画面,播放速度pasue(1)播放出来,这个程序改怎么改啊?我是从主程序下手还是子程序下手?记录画面是写在主程序还是子程序啊?有没有老师给讲讲,非常感谢!
function main()
clear
clc
format long
R=17;
T=8;
B=6;
r=4;
global x y;
xx=-T/2:0.2:T/2;
yy=-B/2:0.2:B/2;
m=length(xx);
n=length(yy);
options = optimset('Display','off');%不显示中间结果
z=zeros(m,n);
for i=1:m
    x=xx(i);
    for j=1:n
        y=yy(j);
        z(i,j)=fsolve(@obj,0.01,options);
    end
end
%绘制图形
[X,Y]=meshgrid(xx,yy);
X=X';
Y=Y';
X1=real(X);
Y1=real(Y);
z1=real(z);
surf(X1,Y1,z1);
xlabel('x/mm');
ylabel('y/mm');
zlabel('d/mm');
title('figure:d');
colormap(gray);

%子程序
function f=obj(z)
global x y;
%已知数据
R=17;
r=4;
b=-pi/10;
%方程
temporary=sqrt((R-sqrt(r^2-(y*cos(b)-(R-z)*sin(b))^2))^2-x^2);
f=z*cos(b)-y*sin(b)+R*(1-cos(b))-temporary;


  • 原图
已退回1积分

更多回帖

发帖
×
20
完善资料,
赚取积分