Matlab-从一系列图创建.gif文件
因此,当我在谷歌上浏览关于如何从一系列.fig文件创建.gif动画的问题时,我偶然发现了一个使用.sdf文件的动画,我试图重写该程序来处理.fig文件Matlab-从一系列图创建.gif文件,matlab,matlab-figure,animated-gif,Matlab,Matlab Figure,Animated Gif,因此,当我在谷歌上浏览关于如何从一系列.fig文件创建.gif动画的问题时,我偶然发现了一个使用.sdf文件的动画,我试图重写该程序来处理.fig文件 clear all; close all; dynam = 156; gif_fps = 24; video_filename = 'A.gif'; fh = figure(1); for i = 1:dynam F_data = getdata(['F' num2str(i,'_%03i', '.fig'); images
clear all;
close all;
dynam = 156;
gif_fps = 24;
video_filename = 'A.gif';
fh = figure(1);
for i = 1:dynam
F_data = getdata(['F' num2str(i,'_%03i', '.fig');
imagesc(F_data);
drawnow;
frame = getframe(fh);
im = frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if a == 0;
imwrite(imind,cm,video_filename,'gif', 'Loopcount',inf);
else
imwrite(imind,cm,video_filename,'gif','WriteMode','append','DelayTime',1/gif_fps);
end
end
所以它会弹出一个错误,说
??? frame = getframe(fh);
|
Error: The expression to the left of the equals sign is not a valid target for an assignment.
我不明白为什么会发生这种情况,我还注意到Matlab没有绘制无花果,弹出的图是完全空白的。错误来自于输入错误。线路
F_data = getdata(['F' num2str(i,'_%03i', '.fig'); %bracket missing at the end
应该读
F_data = getdata(['F' num2str(i,'_%03i', '.fig']);
如果没有括号,Matlab会看到
['F' num2str(i,'_%03i', '.fig');
imagesc(F_data);
drawnow;
frame
作为一串字母。因此,代码的逻辑是a=b=c
,matlab无法解释这一点
为了防止此类错误,matlab及其编辑器提供了一些很好的着色方案,可以用深红色突出显示开头字符串
后面的文本,并在使用结尾字符串
时将整个字符串变成紫色。如果您看到一些红色字符跨越几行,这表明存在潜在问题。不幸的是,括号没有这样的行为
另外,打开数字本身怎么样?您将看到每个图形是否渲染良好(没有空白),并且是否能够捕获帧
for i = 1:dynam
%open, get the frame from and close the figure
fh_tmp = open(['F' num2str(i,'_%03i', '.fig'])
frame = getframe(fh_tmp);
close(fh_tmp);
im = frame2im(frame);
...
我仍然很难找到
getdata
的来源。我没有得到frame=getframe(fh)代码>在您的代码和帧功能磁共振成像
错误。您的复制/粘贴是否正确?不,这不是复制/粘贴错误,当我复制/粘贴时,我通常会将所有变量重写为我习惯的内容,当我创建此帮助时,我将变量更改为最原始的变量,在那里显示的错误实际上两个变量都是相同的,因为我在使用原始变量时也尝试过同样的方法,getdata
函数是什么?有关如何创建动画gif文件的示例,请参见@沃纳:我想你发错了link@Amro谢谢,我说的是(尽管我不确定它是否会比前一个更有用…)@Werner谢谢这个例子,我发现了很多这样的例子,但令人不安的是,我有一点不同的是,当我导入由matlab生成的.fig文件以生成.gif文件时,这些文件使用了方程。从我在描述中了解到的getdata是一种导入文件的方法。我在中使用的示例是。感谢您的帮助,getdata来自创建.gif文件的原始线程。我没有注意到其中一个支架缺失。+1接球不错。我会使用hgload
而不是通用的open
现在我遇到了的问题???使用==>imwrite参数名称时出错必须是字符串
。