未定义函数或变量'addframe'
问题描述:
clear all
close all
mov=VideoWriter('mult.avi');
N=50;
om=0.1;
X = linspace(0,12.4,N);
Y = 0*X;
Z2= 0*X;
for it=1:100
Z = cos(X-it*om);
Y2= cos(X-it*om);
stem3(X,Y,Z,'r','fill')
hold on
stem3(X,Y2,Z2,'k','fill')
hold on;
line(X,Y,Z2);
for ix=1:N
hold on;
plot([X(ix) X(ix)],[0 Y2(ix)],'k');
end;
hold off
view(-25,30);
xlim([X(1) X(end)]);
ylim([-1 1])
zlim([-1 1])
set(gcf,'Color',[1 1 1],'nextplot','replacechildren', 'Visible','off')
axis off
FF=getframe(gcf);
mov=addframe(mov,FF);
end;
mov=close(mov);
这是我的matlab代码。每次我打在命令窗口中运行,我看到这个错误未定义函数或变量'addframe'
Undefined function or variable 'addframe'.
Error in EM (line 41)
mov=addframe(mov,FF);
此文件包含电磁波的两个组成部分:直角彼此的电场和磁场,它应该向前推进。但它始终保持不变,因为addframe错误。所以也许有人可以帮助我?
答
有一对夫妇在代码中的错误:
- 如果你使用
VideoWriter
类,你必须真正打开电影文件(调用open
方法),因为VideoWriter
只有构建了一个VideoWriter object
视频数据写入压缩的AVI文件 - 也使用
VideoWriter
你要调用的方法writeVideo
(而不是addframe
(这是不是一个VideoWriter
方法 - 然后,在t结束他脚本(在电影的registraion结束),你必须关闭AVI文件与
close
方法
功能addframe
可用于帧添加到使用功能avifile
创建的avifile object
;请注意,此功能将在未来版本中删除。
此后您可以找到更新的脚本。
clear all
close all
mov=VideoWriter('mult_1.avi');
% Added
open(mov);
N=50;
om=0.1;
X = linspace(0,12.4,N);
Y = 0*X;
Z2= 0*X;
for it=1:100
Z = cos(X-it*om);
Y2= cos(X-it*om);
stem3(X,Y,Z,'r','fill')
hold on
stem3(X,Y2,Z2,'k','fill')
hold on;
line(X,Y,Z2);
for ix=1:N
hold on;
plot([X(ix) X(ix)],[0 Y2(ix)],'k');
end;
hold off
view(-25,30);
xlim([X(1) X(end)]);
ylim([-1 1])
zlim([-1 1])
set(gcf,'Color',[1 1 1],'nextplot','replacechildren', 'Visible','off')
axis off
FF=getframe(gcf);
% With "VideoWriter" use "writevideo" to add frames to the video
writeVideo(mov,FF);
end;
% Close the video file
close(mov);
希望这会有所帮助。
你可以发布'addframe'函数的来源吗? – kvorobiev
什么来源?这是所有我得到:( – TheDude
功能'addframe'定义? – kvorobiev