This is a tutorial question only! There is no need to answer it and please to not vote for it. This is neither my question nor my answer, but only an example for a nicer, more convenient, more usable FAQ, which is less stuffed with commercials.
FAQ: How can I process a sequence of files?
38 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
How can I process a sequence of files?
3 Kommentare
Salah Djerouni
am 15 Feb. 2020
Hi Jan
can i ask you some question because i have a problem for save result in matlab
my probleme is i run matlab with three loops (for...end ) and i want to save the result every change iterataion loop.
if you possible to help me .
thanks Jan
Walter Roberson
am 16 Feb. 2020
Pre-allocate an output array that is at least 3 dimensions, with one dimension being the number of times the first loop will execute, a second dimension being the number of times the second loop will execute, and the third dimension being the number of times the third loop will execute. Then assign to the output according to how many loop iterations you have done.
For example,
Lvals = [-83, 149, -5, 0, -2, 101];
numL = length(Lvals);
output = zeros(7, 3, numL);
for J = 9:17:11
Jidx = round((J-9)/17) + 1;
for K = 1000:500:2000
Kidx = round((K-500)/500);
for Lidx = 1 : numL
L = Lvals(Lidx);
output(Jidx, Kidx, L) = J.^2 + K/7 + sin(L.^3);
end
end
end
Akzeptierte Antwort
Jan
am 26 Dez. 2012
Bearbeitet: Jan
am 8 Apr. 2021
3 Kommentare
Walter Roberson
am 23 Jun. 2019
Each iteration in a separate file could result in hundreds of thousands of files.
persistent fid
if isempty(fid) || isempty(fopen(fid))
fid = fopen('output.txt','wt');
end
fprintf(fid, 'appropriate format', appropriate data) ;
joshua Abam
am 24 Jun. 2019
Hi Walter
I seem not to have follow your suggestion can you help by adding some more comments to ease my grap or better still use this example to illustrate it and where best can I possible attached that to a GA code.
function f = gaintobj(x)
f = rastriginsfcn([x(1)-6 x(2)-13]);
f = f + rastriginsfcn([x(3)-3*pi x(4)-5*pi]);
lb = [1 1 -30 -30];
ub = [20 20 70 70];
%%
% Set the integer variables and number of variables.
IntCon = [1 2];
nvar = 4;
%%
% Set options to call the custom output function, and to initially have
% little crossover.
options = optimoptions('ga','OutputFcn',@gaoutputfunround,'CrossoverFraction',0.2);
%%
% For reproducibility, set the random number generator.
rng(10)
%%
% Set the objective function and call the solver.
fun = @gaintobj;
[x,fval] = ga(fun,nvar,[],[],[],[],lb,ub,[],IntCon,options)
Weitere Antworten (2)
Sean de Wolski
am 29 Jul. 2016
Bearbeitet: Sean de Wolski
am 29 Jul. 2016
In MATLAB R2014b and newer, you can use a datastore to read a sequence of files in a load-analyze-discard manner or in one shot with the readall() command.
1 Kommentar
Ismail Qeshta
am 11 Nov. 2017
Hi all. Thanks for sharing it. How about if my files are in permutations sequence such as, Data11, Data12, Data 13, etc. Also, what if I would like to plot two different files names within a folder? Regards.
Siehe auch
Kategorien
Mehr zu Startup and Shutdown 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!