MATLAB 根据条件修改TXT文本内容

有时候,网上提供的数据格式和自己工程代码所需的格式可能有些区别, 比如我遇到的情况是数据中是指数形式e+n, 但是代码中缺一般需要小数浮点型的. 如果在大型工程代码中去修改, 不仅增加了很多不需要的代码, 而且由于工程复杂容易出错. 好的做法就是用MATLAB或者Python脚本先将数据修改一下, 然后转成自己可用的数据. 可根据自己的筛选条件, 修改if语句进行,定制自己的脚本.

例子是将数据中的指数形式数据,转成浮点型数据.
如:
输入指数型数据:

100,100e+1,100e+5
124,1e+2,10e+1
2,1e+5,10e+2
31,1e+12,10e+2

输出浮点型数据:

100.000000,1000.000000,10000000.000000
124.000000,100.000000,100.000000
2.000000,100000.000000,1000.000000
31.000000,1000000000000.000000,1000.000000

代码如下:

 %% Read
fid = fopen('test1.txt','r');
i = 1;
tline = fgetl(fid);
C = [];
while ischar(tline)
    disp(tline);
    C{i} = strsplit(tline,',');
    i = i+1;
    tline = fgetl(fid);
end
fclose(fid);

%% modify
for k=1:length(C),
    curC=C{k};
%     disp(curC);
    for i=1:length(curC),
        s = curC{i};
        if(isnumeric(str2num(s))),
                disp(s);
                C{k}{i} = sprintf('%f\n', str2num(s));
        end
    end
end

%% output
fid = fopen('test2.txt', 'w');
for k=1:length(C),
    curC=C{k};
    str = curC{1};
    for i=2:length(curC),
        str = strcat(str,',',curC{i});
    end
    disp(str);
    fprintf(fid,'%s\n', str);
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值