Prevent overwriting within a for loop in 3D-motion tracking
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Jonas Bender
el 3 de Ag. de 2021
Comentada: Peter Perkins
el 6 de Ag. de 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 comentarios
Sean Brennan
el 3 de Ag. de 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
Respuesta aceptada
Peter Perkins
el 3 de Ag. de 2021
You may just want
T = table();
for ...
...
T = [T; readtable (thisFile)];
2 comentarios
Peter Perkins
el 6 de Ag. de 2021
I do: remove the space that I unintentionally put between "readtable" and (thisFile). Oops! Sorry about that!
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!