Calculations for Each Table in a Cell

1 view (last 30 days)
Hello I have displacement and time data from 10 different trials stored as tables in a 10x1 cell. I am trying to calculate the velocity for each of the trials and store the data as a DOUBLE rather than a a table in a 10x1 cell.
Say CoPyData is the 10x1 cell with the 10 tables containing the time and displacement data. My code so far is:
CoPvAll = {}
for i =1:numel(CoPyData)
Trial = CoPyData{i,1}
CoPv_y = diff(Trial.Displacement)./diff(Trial.Time)
CoPv = [zeros(1);CoPv_y]
T = addvars(Trial,CoPv)
CoPvAll = {CoPvAll,T}
end
however this code is not correctly storing the data/calculated velocity back into a 10x1 cell and I am not sure how to convert the data from tables to doubles. Any help is greatly appreciated.

Accepted Answer

Matt J
Matt J on 3 Jun 2024
Edited: Matt J on 3 Jun 2024
for i =1:numel(CoPyData)
Trial = CoPyData{i};
CoPv_y = diff(Trial.Displacement)./diff(Trial.Time);
CoPv = [zeros(1);CoPv_y];
CoPyData{i} = addvars(Trial,CoPv);
end
  3 Comments
Matt J
Matt J on 3 Jun 2024
Assuming your table data is purely numeric, you can do as follows,
for i = 1:numel(CoPyData)
Trial = CoPyData{i};
CoPv_y = diff(Trial.Displacement)./diff(Trial.Time);
CoPv = [zeros(1);CoPv_y];
T = addvars(Trial,CoPv);
CoPyData{i}= double(T{:,:});
end

Sign in to comment.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!