Effacer les filtres
Effacer les filtres

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

1 vue (au cours des 30 derniers jours)
Francesco Grechi
Francesco Grechi le 5 Avr 2021
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

Réponse acceptée

per isakson
per isakson le 5 Avr 2021
Modifié(e) : per isakson le 5 Avr 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 commentaires
per isakson
per isakson le 5 Avr 2021
Modifié(e) : per isakson le 5 Avr 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});
Francesco Grechi
Francesco Grechi le 5 Avr 2021
now it works

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by