save the loop data in a if else statement
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I have an if statement
for ind = 1:MAX_ITER
if(mod(ind, 1500) == 0)
h = findobj(gca,'Type','line');
x=get(h,'Xdata');
y=get(h,'Ydata');
z=[x,y];
H_XX = z{2,1};
H_YY = z{2,2};
filename=['test',num2str(ind),'.mat'];
save(filename)
end
end
How can i save the 'H_XX' and 'H_YY' of the entire loop in a single file ?
0 Commenti
Risposta accettata
KSSV
il 3 Apr 2018
count = 0 ;
iwant = cell([],1) ;
for ind = 1:MAX_ITER
if(mod(ind, 1500) == 0)
h = findobj(gca,'Type','line');
x=get(h,'Xdata');
y=get(h,'Ydata');
z=[x,y];
H_XX = z{2,1};
H_YY = z{2,2};
count = count+1 ;
iwant{count,1} = [H_XX H_YY] ;
end
end
iwant = cell2mat(iwant) ;
iwant gives you data when the loop goes inside if. You can save it into a file you want.
3 Commenti
Più risposte (1)
Stephen23
il 3 Apr 2018
Modificato: Stephen23
il 3 Apr 2018
It is simpler to avoid generating too many values (and then using mod to select which values you want to use) because then you can trivially preallocate an output array of the correct size:
vec = 1500:1500:MAX_ITER;
out = cell(numel(vec),2);
for k = 1:numel(vec)
...
out(k,:) = [x,y];
end
save('test.mat','out')
This trivially avoids expanding the output array on each iteration:
3 Commenti
Vedere anche
Categorie
Scopri di più su File Operations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!