飞将982
2021-08-26 14:46
采纳率: 100%
浏览 226

如何用matlab批量提取txt文件里的某一列数据并组成新矩阵

目的:提取所有“2019-*-ipa.txt”文件中的第4列的所有数据组成一个新矩阵;
问题:并不清楚有多少个这样的文件,只知道文件名共同点是前缀为日期,后缀为“-ipa”。

本人matlab新生,网上也搜过很多方法,但都没有成功,希望各位帮帮忙,谢谢!

img

img

  • 收藏

1条回答 默认 最新

  • joel_1993 2021-08-26 15:15
    已采纳

    给你写了一段代码,自己按要求修改,都有注释

    clc;clear
    DIR = dir('2019-*-ipa.txt');
    dirCell = {DIR.name};
    dirCell = arrayfun(@(i)replace(dirCell(i),'-ipa.txt',''), 1:1:numel(dirCell));
    [~,idx] = sort(datetime(dirCell)); % 把文件按照文件名给出的时间顺序先后排序
    DIR = DIR(idx);
    col_num = 4; % 每个文件提取第几列数据,自己根据需求改(我这里写第4列是你说的)
    totalColumns = []; % 用于存储每个文件指定那列的数据组成新矩阵
    for i = 1:numel(DIR)
        q = load(DIR(i).name);
        totalColumns = [totalColumns, q(:,col_num)];
    end
    T = array2table(totalColumns,'variablenames', dirCell(idx)); % 把提取的数据弄成table方便查阅
    writetable(T,'newExtratedColumns.txt') % 提取的数据写入到文件
    
    已采纳该答案
    1 打赏 评论

相关推荐 更多相似问题