MATLAB: How do i create a single table from this for loop? I get lots of 1×3 tables from this code instead of a single table. I can’t figure out how to index the values to arrays.

for looptable

x_displacements = zeros(length(tracks), 1);
for k = 1:length(tracks)
current_track = tracks{k};
first_x = current_track(1, 2);
last_x = current_track(end, 2);
x_displacements(k) = last_x - first_x;
D = x_displacements(k);
T = table(first_x(:), last_x(:), D(:))
end

Best Answer

n = size(tracks, 1); % Safer than LENGTH
x_displacements = zeros(n, 1);
first_x = zeros(n, 1);
last_x = zeros(n, 1);
for k = 1:n
c = tracks{k};
first_x(k) = current_track(1, 2);
last_x(k) = current_track(end, 2);
x_displacements(k) = last_x(k) - first_x(k);
end
T = table(first_x(:), last_x(:), x_displacements(:))