how to save the outputs obtained by a for loop repeated n times

4 Ansichten (letzte 30 Tage)
i built a for loop that works N times and in each loop produces as an output a matrix (6x3), i need to save every output in a matrix by column (6xN*3).
In my example the for loop is shown below and "tot" give to me only the last result of the loop.
PS. Just to let you knok "Tin" is a table that contains some data
function [Tout ] =Trasporta(Tin)
for group = 1:4:size(Tin,2)
[ordine(:,group), idx(:,group)] = sortrows(Tin{:,group});
end
% my question is about the for below
tot = nan(6,18); %N=6 N*3=18 the number of rows is 6, and the loop is repeated for 6 times
for i = 1:4:size(idx,2)
tot = (Tin{idx(:,i),i+1:i+3});
end
end

Akzeptierte Antwort

per isakson
per isakson am 5 Apr. 2021
Bearbeitet: per isakson am 5 Apr. 2021
tot is overwritten in each iteration of the for-loop
Replace
tot = (Tin{idx(:,i),i+1:i+3});
by
tot(:,i) = (Tin{idx(:,i),i+1:i+3});
  3 Kommentare
per isakson
per isakson am 5 Apr. 2021
Bearbeitet: per isakson am 5 Apr. 2021
Since I don't know your data I couldn't test. The indexing of tot was obviously wrong. Try
tot(:,i:i+2) = (Tin{idx(:,i),i+1:i+3});

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by