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代码。每次在命令窗口中单击run,我都会看到以下错误
Undefined function or variable 'addframe'.
Error in EM (line 41)
mov=addframe(mov,FF);
这个文件包含电磁波作为两个组成部分:电场和磁场以直角相互作用,它应该向前移动。但是它始终保持不变,当然这是因为addframe错误。也许有人能帮我?
发布于 2015-10-17 15:23:46
代码中有几个错误:
VideoWriter
类,则必须实际打开电影文件(调用open
方法),因为VideoWriter
只构造一个VideoWriter object
来将视频数据写入压缩的AVI文件。VideoWriter
,您必须调用writeVideo
方法(而不是addframe
(不是VideoWriter
方法))。close
方法关闭AVI文件。函数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);
希望这能有所帮助。
https://stackoverflow.com/questions/33187277
复制相似问题