如题,将常微分方程的结果制作动画时,可以正常播放,但是在将动画保存为.avi视频文件时,有时候可以成功保存,而相同的操作有时候却又会出现如下错误:
??? Error using ==> avifile.addframe>ValidateFrame at 296
Frame must be 434 by 343.
Error in ==> avifile.addframe at 157
ValidateFrame(aviobj,width, height,dims);
Error in ==> movie2avi at 64
avimov = addframe(avimov,mov);
Error in ==> MovieMaker at 178
movie2avi(M, '20150112.avi');
请问是什么原因引起的?
使用MATLAB将常微分方程求解结果制作成动画,并将动画保存为.avi视频文件时出错?
答案:2 悬赏:10 手机版
解决时间 2021-02-25 03:17
- 提问者网友:捧腹剧
- 2021-02-24 10:37
最佳答案
- 五星知识达人网友:轻雾山林
- 2021-02-24 10:47
问题的关键在于这一行:
??? Error using ==> avifile.addframe>ValidateFrame at 296
Frame must be 434 by 343.意思是说某一帧的大小不是434x343像素,你去查看一下第296帧的图片是不是出错了。
??? Error using ==> avifile.addframe>ValidateFrame at 296
Frame must be 434 by 343.意思是说某一帧的大小不是434x343像素,你去查看一下第296帧的图片是不是出错了。
全部回答
- 1楼网友:雪起风沙痕
- 2021-02-24 12:23
dy=zeros(3,1);是占个空位置。
以下程序和你的程序是等效的,比较一下就可以体会出来。
function hh
[t,y]=ode45(@rigid,[0 12],[0 1 1]);
plot(t,y(:,1),'-',t,y(:,2),'*',t,y(:,3),'+')
figure
plot(t,y)
function dy=rigid(t,y)
%dy=zeros(3,1);
dy1=y(2)*y(3);
dy2=-y(1)*y(3);
dy3=-0.51*y(1)*y(2);
dy=[dy1;dy2;dy3]
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯