您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关MATLAB中预定义对话框的文件打开对话框以及如何批量重命名是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
函数:uigetfile。这个函数的名字分成三部分,也容易理解,ui:用户界面,get:获得,file:文件。加在一块就是给你一个界面去选择(获得)一个文件。
用法:首先说一下这个函数获得的仅仅是文件名和文件路径,还有一个可省缺的输出。带小扩号的表示可以省略。
拓展名要用大括号括起来且不同拓展名之间用分号隔开,如:
{'*.jpg';'*.bmp';'*.png'}
第一个返回参数是文件名(带拓展名),第二个返回参数是该文件所在的路径(最后带'\',而uigetdir函数不带,以后讲),第三个参数是表示你选的是第几个拓展名。
点击‘’打开‘’(被水印挡住了)后,在命令行中显示的返回的值如下:
fName =
cancle.png
pName =
C:\Users\F\Desktop\icons\
index =
3
'*.png',是第三个所以index是3。
那么结合昨天说的内容实现:创建一个文件打开对话框可以选择jpg,png,bmp图片,并保存改文件所在路径下所有以jpg,png,bmp为拓展名的图片,并保存照片的张数:(代码如下,其中warning off 可忽略)
下面讲一下如何批量重命名某文件夹下的所有文件
先说一下我是如何碰到这个问题的,前天我在做简历时发现记不清以前用遗传算法做的一个东西是要优化啥了,然后我打开代码运行下发现报错了,说是因为找不到函数文件。我用的是谢菲尔德大学的遗传算法工具箱,才下载下来时里面的所有代码的拓展名是:.M。而MATLAB是区分大小写的,正确的m文件的拓展名应该是:.m。一个工具箱里面好多函数的啊,怎么办?手动修改?不仅能累死你还能把你眼睛瞅瞎。那么下面开始说正事:
首先MATLAB中没有重命名的函数,但是windows操作系统里有一个叫rename的函数它可以重命名file。那么如何在MATLAB中执行操作系统的命令呢:很简单,在所要执行的命令前加一个感叹号(英文输入状态下的感叹号哦)就行。
用法:!rename,OldName,NewName
开始时文件夹下的部分文件:
运行代码的一秒钟后
代码就几行,下面解释一下:
这个好理解吧,先是执行dir获取以 .M为拓展名的所有文件,dir返回的是一个具有5个字段的结构体,第一个字段是name,然后直接进行struct2cell返回的是一个具有5行的细胞数组,我们只需要第一行的内容(第一行是name的值)。所以接着执行:
好了现在所有要改的文件名都搞出来了。接下来就是遍历files中的元素了
由于代码很短,就直接在命令行中执行了。
先获得第 i 个name然后执行eval这句,这句是用来重命名的。下面来解释一下eval这行:
eval是用来执行一个字符串的函数,举个例子:3+5 就等价于eval('3+5'),那么这里的这句就等价与 !rename,file,file(1:end-1).m。但是直接这样做是不行的,是因为!rename 后面每个逗号之间都被看成是字符串,而路径下没有名为''file''也没有名为 ''file(1:end-1).m''的文件,所以这样不行。
而使用是通过中括号把这些字符横向拼接在一块,file不是字符'file'了而是file所对应的具体的文件名。file(1:end-1)是获得去掉后缀M后的字符串。
如果单个执行的话应这样:
关于MATLAB中预定义对话框的文件打开对话框以及如何批量重命名是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。