📄 movie1.m
字号:
function theResult = Movie1(x1, x2, x3, x4, x5)
% Movie1 -- Show a movie.
% Movie1(...) uses the movie() syntax to show a movie.
% It avoids the unpleasant behavior of the Matlab movie()
% routine, which shows the film first during loading, then
% again at the requested speed, or as fast as possible,
% whichever is slower.
% Movie1(nFrames) demonstrates itself with nFrames (default = 16),
% at four frames per second.
% theResult = Movie1(nFrames) returns a demonstration movie
% of nFrames. To show theResult, use "movie1(theResult)".
% Copyright (C) 1997 Dr. Charles R. Denham, ZYDECO.
% All Rights Reserved.
% Disclosure without explicit written consent from the
% copyright owner does not constitute publication.
% Version of 06-May-1997 10:24:44.
% Updated 09-Nov-1999 23:35:45.
% Note: this routine needs to be updated
% to Matlab-5 syntax, using "varargin".
if nargin < 1, help movie1, x1 = 16, end
if isstr(x1), x1 = eval(x1); end
if nargin < 2 & length(x1) == 1
help movie1
nFrames = x1;
disp(' ## Create the movie.')
f = figure('Name', ['Movie1(' int2str(nFrames) ')']);
tic
theMovie = moviein(nFrames);
k = ceil(sqrt(nFrames));
theFrame = zeros(k, k) + 24;
theImage = image(theFrame);
for j = 1:nFrames
theFrame = zeros(k, k) + 24;
theFrame(j) = 40;
set(theImage, 'CData', theFrame);
set(gca, 'Visible', 'off')
theText = text(1, 1, int2str(j), ...
'HorizontalAlignment', 'center');
theMovie(:, j) = getframe;
delete(theText)
end
toc
if nargout < 1
disp(' ## Show the movie at 4 frames/second.')
t0 = clock;
speed = 4; % frames-per-second.
movie1(theMovie, 1, speed)
elapsed_time = etime(clock, t0);
average_frames_per_second = nFrames ./ elapsed_time
else
theResult = theMovie;
end
return
end
theHandle = [];
len = length(x1);
if len > 1
theMovie = x1;
else
theHandle = x1;
theMovie = x2;
end
nin = nargin;
if nargin < 3, x3 = 4; nin = nin+1; end
fps = x3;
v = '';
for i = 1:nargin
if i > 1, v = [v ' ,']; end
v = [v 'x' int2str(i)];
end
v = ['movie(' v ')'];
if isempty(theHandle), figure(gcf), end
[m, nFrames] = size(theMovie);
fps = x3; % Desired speed.
x3 = 1.5*x3; % First frame is usually slow.
tic % Start the clock.
for j = 1:nFrames
if isempty(theHandle)
x1 = theMovie(:, j);
x2 = 1;
else
x2 = theMovie(:, j);
end
eval(v) % Show the frame.
t = toc; % Get elapsed time.
tic % Restart the clock.
speed = 1/t;
% disp(num2str(speed))
x3 = x3 * fps / speed; % Adjust speed.
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -