matlab圆形数据集,matlab整理数据集

今天用matlab整理了一天的数据集,心好累。

原始数据是这样的,(152.0, 115.0, 167.0, 135.0), (221.0, 127.0, 240.0, 152.0)。

我需要把每个数字字符分出来。

关键代码如下:

tline=fgets(fidin); %从文件读行

s=regexp(tline,'\([^)]*)','match'); %正则表达式,提取出每个括号中的内容。

%s{1}是一个字符串,为(152.0, 115.0, 167.0, 135.0)

%s{2}是一个字符串,为(221.0, 127.0, 240.0, 152.0)

m=numel(s);%s中字符串的个数,此处等于2

for i=1:m

s2=(regexp(s{i},'\d*\.\d*', 'match'));

%这也是个正则表达式,作用是提取s{i}字符串中的数字部分。

for j=1:4

fprintf('%s',s2{j});

fprintf('\n');

end

end

%打印出来的s2{j}就是分拆出来的数字

152.0

115.0

167.0

135.0

221.0

127.0

240.0

152.0

由上可以看出,正则表达式非常强大。

之后还经历了文件的删除,

delete([path,filename]);

以及文件的重命名。

eval([‘!rename’ 32 strcat(path,filesname) 32 newname]);

需要注意的是,源文件名前面要加路径,而目标文件名前面则不用。以及32和前后面都要有空格。(忍不住吐槽matlab改文件名为什么这么奇怪的写法)

最后涉及到的问题就是读写xml文件。xml文件读写有两种方法,一种是matlab自带的函数,即xmlread,xmlwrite,这个用法感觉非常复杂。

第二种方法是使用工具包。http://download.csdn.net/search?keywords=xml_io_tools

其提供的 xml_read和xml_write函数非常方便。代码如下:

annotation = xml_read(strcat(path_label,label_name));

annotation.filename=files_all(i).name;

xml_write([strcat(path_label,label_name)],annotation);

即通过xml_read读出来,然后修改节点内容,最后通过xml_write写进去,就OK了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值