Matlab中用一个For循环连续读入并显示几个图像文件 [转]

论坛上一具体问题:

想在MATLAB中用一个FOR循环连续读入并显示几个图像文件应该怎么写?

比如:
for k=1:8
filename=sprintf('image_000%d.jpg',k);
f=imread(filename);
figure,imshow(f);
end
这样只能读入一个文件,现在想把8个图像文件分别读到f1,f2,...,f8中并显示出来应该怎么做呢

用imshow,显示多图时,它是一张一张覆盖上去的,所以看到最后一张图

解决方法:

 

用eval命令,例如
可以把第三句换成
eval(['f' num2str(i) '=imread(filename);']);

 

eval基本的用法:
eval('string')

这个string是一些合法的matlab命令。eval('string')的作用就是相当于在命令窗里输入string这个命令并执行。

比如 eval('a=rand(2,3);')
就相当于在命令窗输入a=rand(2,3);后回车

改了之后

问题解决了,最后的代码是:
for k=1:8
filename=sprintf('image_000%d.jpg',k);
eval(['f' num2str(k) '=imread(filename);']);
eval(['figure,imshow(f' num2str(k) ');']);
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值