Trying to add data pulled from trials subfolders into a table and add a column in that table that labels the data with the trial that is came from
1 回表示 (過去 30 日間)
古いコメントを表示
I have code right now that after the user selects a file there is are mutiple subfolders labeled with trial numbers. Within the each trial folder is anotehr subfolder "Data" that matlab pulls in as a text file "imudata.txt" and bring it into the workspace as a table.
the file structure is like this
- pt_01 folder
- - Trial 1
- -> Data
- imudata.txt
- - Trial 2
- -> Data
- imudata.tx
- - Trial 3
- -> Data
- imudata.txt
the code is:
P = uigetdir('C:\user\project1\');
F = fullfile(P,'Trial*','Data','imudata.txt');
S = dir(F);
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name);
T = readtable(F); % pick a suitable file importing function and options.
S(k).data = T;
end
I want the data to add all of the data into a table with other data from each trial and have create a colum in the table that labels which trial the data came from. So it looks something like this:
Here is what im thingking so far but im not sure if it is right.
Creating a table with Data from Each Trial
for i= 1:numel(T)
Table = [S(i).data,CDData(i).data]
Trial = i
Table_i= addvars(Table,Trial);
end
Any help is greatly appreciated
採用された回答
Voss
2024 年 2 月 21 日
P = uigetdir('C:\user\project1\');
F = fullfile(P,'Trial*','Data','imudata.txt');
S = dir(F);
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name);
T = readtable(F);
trial_name = regexp(S(k).folder,'\\(Trial.*)\\','tokens','once');
new_data = repmat(trial_name,size(T,1),1);
T = addvars(T,new_data,'NewVariableNames',{'Trial'},'Before',1);
S(k).data = T;
end
5 件のコメント
Voss
2024 年 2 月 21 日
"[Is] there any way to vertically concatenate all this data into one table outside the loop?"
% after the loop:
T = vertcat(S.data)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Tables についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!