2013-03-14 7 views
0

J'ai un grand tableau P qui change la taille et les valeurs à chaque itération. J'ai besoin de pouvoir changer le titre de mon tableau de sortie pour correspondre à l'itération donnée, c'est-à-dire pour le bin 1.4, je voudrais que la sortie soit p1.4 ou p14.Modifier le nom de la variable à chaque itération dans la boucle for MATLAB

Quelqu'un peut-il aider?

for bin = 1:0.1:2; 
    rows = find(DAT(:,27) > bin); 
    p{bin} = DAT(rows,:); 
end 
+0

'fprintf ('p% .1f \ n', bin);'? –

+0

Ah, le nom de la variable ... –

Répondre

4

Si je vous ai bien compris, le code est

for bin = 1:0.1:2; 
    rows = find(DAT(:,27) > bin); 
    current_p = DAT(rows,:); 
    eval(sprintf('p%0.f=current_p;', bin * 10)); 
end 

Mais pourquoi avez-vous besoin? Pensez à utiliser un conteneur plus intelligent comme containers.Map:

p = containers.Map('KeyType', 'double', 'ValueType', 'double')  
for bin = 1:0.1:2 
    rows = find(DAT(:,27) > bin); 
    p(bin) = DAT(rows,:); 
end 
disp(p(1.2)) 

Il pourrait être plus convinient.

+0

les deux fonctionnent très bien. Je vous remercie – mallow

1

que diriez-vous

bins = 1:0.1:2; 
for ii = 1: numel(bins) 
    bin = bins(ii); 
    rows = find(DAT(:,27) > bin); 
    p{ii} = DAT(rows,:); 
end 
Questions connexes