好久没有记录使用matlab的心得了,不记就容易忘掉,以后再用到会很麻烦,还是勤快点比较好,以后一定要记得写。
昨天在程序中遇到要在for循环中使用if判断语句,要判断一个变量是否是一个整数,注意这里说的是整数,而不是整形数。在matlab中判断数据类型是比较简单的,用isXXX一般都可以了,但是判断是否是整数,许是本人浅薄,一时还真是没有找到,于是不材使用了很笨的方法,但是的确有效。
if a-fix(a)==0
很简单,但是很有效,fix是对变量取整的函数,如果a是个整数,判别为真,否则两者之差必不为0,判别为假。
至于保存文件,是昨天老板给出的难题,她说一次循环可以讲其中需要的数据都取出来,否则每个结果都要从头循环浪费时间。其实前面不需要这么多数据的时候,是没有这个必要的,现在既然需要,卷起袖子来想办法吧。
废话少说,现在就说程序吧!我要完成的目的是在循环中找出符合一定条件的数据,并将其自动命名保存,这个我在网上搜过,还真没有找到人这样做过,呵呵,其实不难,不过本人也是试了好一会儿,记下来吧,以后兴许有用。
cd D:\mymatlabwork\27datnew
saveas (h,['Z','=',num2str(a),'.bmp'])
save (['Z','=',num2str(a),'.dat'],'Iu','-ascii','-double')
这里h是当前figure的句柄,也就是存储当前打开的一个figure,文件名字就是Z=a,这里a是前面if语句判断得到的一个符合条件的变量,.bmp是指定保存类型,我觉得bmp还是比jpg格式的效果要好一些。这里关键就是[ ]的使用,使得变量成为文件名成为可能。同样的道理.dat格式的数据保存也是使用了同样的方法。不过,存储数据与存储图像文件使用的函数一个是save一个是saveas倒是比较奇怪,而且两个函数在写文件名与变量(句柄)时的顺序是相反的,要注意。