从多个文本文件导入数据

时间:2019-03-19 10:05:08

标签: matlab text

我目前正在研究一项研究,每个参与者的数据都保存在.txt文件中。我正在寻找一种将每个文件中的所有数据自动加载到matlab中的方法。 我已经找到了许多有关加载Multpile文件的主题,但是我找不到使它适合我的方法。

我想将所有名为“ Log_ *”的文件加载到如下表中:

delim = {')(',') ','(', ' ', ','};
T = readtable('Log_***.txt','Delimiter', delim,'MultipleDelimsAsOne',1);
T = removevars (T, {'Var1', 'Var2', 'Var4', 'Var6', 'Var8', 'Var10', 'Var12','Var14', 'Var16', 'Var18', 'Var26', 'Var27', 'Var31', 'Var36', 'Var40', 'Var45', 'Var47', 'Var49'});
newnames = {'essai', 'DureeEssai', 'azVoulue', 'elVoulu', 'azMesure','elMesure', 'distanceAngulaire', 'diffhorizontale', 'diffElevation', 'x1', 'y1', 'z1', 'x2', 'y2', 'z2', 'posTx', 'posTy', 'postz', 'oriTx', 'oriTy', 'oriTz', 'oriTw', 'posCx', 'posCy', 'posCz', 'oriCx', 'oriCy', 'oriCz','oriCw','distanceAngulaire_oriT_C','az_oriT','el_oriT'};    
T.Properties.VariableNames = newnames;
T = T(2:2:end,:);

这一次只能处理一个文件,但是我无法编写适当的脚本来一次完成每个文件。 如果您知道方法,很高兴可以分享。

欢呼

1 个答案:

答案 0 :(得分:0)

使用dirmatrix concatenation,您可以将一个表的一行附加到另一个表的末尾:

T = table;
list_of_files = dir(**directory of files**);
for i = 1:length(list_of_files)
    filename_to_use = list_of_files(i).name;
    U = table;

    **read file in and place data into table**

    T = [T; U];
    clear U;
end
disp(T);

这是如果您要将所有数据存储在一个表中。