Prevent overwriting within a for loop in 3D-motion tracking
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jonas Bender
il 3 Ago 2021
Commentato: Peter Perkins
il 6 Ago 2021
Hi all,
a analyse 3-D motion data in humans. I want to import multiple .xlsx files at once and save the output in one table. So far, in my for loop matlab overwrites the data so that I have only the results in my table with the last iteration (n=21).
Next steps after save all files in one table are to select relevant data and calculate maximum and mean data.
I tried a lot but can't find a solution.
Regards and thank you very much for yout help.
clc; clearvars; close all
data = dir ("*.xlsx") ;
N = length (data) ;
for i = 1:N
thisFile = data(i).name;
T = readtable (thisFile);
end
2 Commenti
Sean Brennan
il 3 Ago 2021
In the line:
T = readtable (thisFile);
This command overwrites the prior T value. An easy fix for this is to index the variable, one for each table: For example:
T(i) = readtable (thisFile);
In subsequent processing, you can then again do a loop over the tables to generate the analysis for each. For example:
for ith_table = 1:length(T)
% Do your analysis on each table here, where each table can be recovered
% as T(ith_table)
end
Risposta accettata
Peter Perkins
il 3 Ago 2021
You may just want
T = table();
for ...
...
T = [T; readtable (thisFile)];
2 Commenti
Peter Perkins
il 6 Ago 2021
I do: remove the space that I unintentionally put between "readtable" and (thisFile). Oops! Sorry about that!
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Cell Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!