matlab——最曲线救国的一招,服了自己了。。。。

来源:互联网 发布:如何免费开淘宝店 编辑:程序博客网 时间:2024/05/04 22:33
为了实现开水的最大乐趣和编程宗旨“能自动化的绝对自动化,不能自动化的搞成自动化!”,这两天一直在研究如何在matlab里实现获取当前文件夹的名称,需求不到合适的函数时,开水动了批处理的歪脑筋!(奸笑)

(批处理:奴家不要~ 皇上你才认识臣妾不到一个星期,怎么可以直接就上了?~  臣妾做不到啊)

(开水:管我认识你多久,说上咱就上,少啰嗦,度娘,上) (“雅蠛蝶~~” )
于是乎开水在度娘的帮助下,成功地掀开了批处理的面纱,一窥批处理的美貌~~(因此也误了作业,哼哼,走着瞧,待我再修炼修炼,刷好等级再与你一战~)


order=strvcat('call :get "%cd%"','pause>nul','exit',':get','echo %~nx1>name.txt','exit')
%将各行命令分为每个单元,存入order中(批处理最后得自行退出-exit,否则会阻碍程序的进行)
order=order'%转置以显示出所要求的形式
bat_w=fopen('A.bat','w+')%创建并将order写入批处理中
for i=1:6
fprintf(bat_w,'%s\r\n',order(:,i))
end
status=fclose(bat_w)
winopen('A.bat')
name=importdata('name.txt')
name=cell2mat(name)%将上面的name(元胞数组)转为矩阵
delete A.bat
delete name.txt%消灭处理痕迹


通过strvcat函数将各行命令并到一个矩阵中——→创建批处理文件并写入命令——→读取批处理存储记录名称的文件——→消除痕迹

经过这一番曲线救国,最后得到了开水想要的战果——文件夹名! (O(∩_∩)O哈哈~) 
虽然其中有不少曲折,但是学到的还是不少滴~~不知道可以整合成一个函数。
有人建议我用dir搭配uigetdir能完成,如果有哪位知道有更适合的函数或者方法,希望不吝赐教!


——————————————————小开水飘过~~~~~————————————————————————————
经过ilovematlab论坛里的回答——————→http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=244407&page=1#pid2103942
最后知道真相的我眼泪流下来TAT  真的跟之前别人提示的一样,先获得路径,再寻找字符串..............

解决思路如下:
获取当前文件路径(dir、pwd)————→寻找特定格式的字符串(regexp、findstr、strfind

之前Q群里有人建议用dir获取路径时,我就曾想过正则表达式抓取路径里的文件夹名,但是不知道matlab里有没有正则表达式的函数,仅仅只是想到,没有实践。没想到还真有,O(∩_∩)O哈哈~真好,最近都在玩批处理和正则表达式,这下子两种方法分别用到了,岂不快哉?哈哈哈哈!
多跟人交流才能发现新大陆,以后多多交流,开阔下视野~~
原创粉丝点击