MATLAB: Comment rassembler toutes les valeurs d’une boucle dans un tableau

Salut,
Je me demandais comment puis-je rassembler toutes les valeurs dans un tableau car j’ai besoin de tracer la réponse plus tard. Cela fait partie du code que j’écris:
 
for i=x0:h1:xx-h1 % Where h1 is the step size
y1=y1+dy(i,y1)*h1;
i=i+h1;
end
 
Si quelqu’un le sait, faites-le moi savoir! Merci!

Meilleure réponse

  • Ne connaissant que ce que vous avez publié, je ferais quelque chose comme ceci:
     
    i=x0:h1:xx-h1; % Where h1 is the step size

    y1v = zeros(size(i)); % Preallocate


    for k = 1:numel(i)
    y1=y1+dy(i,y1(k))*h1;
    y1v(k) = y1;
    end
     
    Qui stocke les valeurs existantes de«Y1»comme vecteur«Y1v»il stocke donc les valeurs sans perturber autrement le code. le‘je’Le vecteur est maintenant séparé, donc pour les tracer plus tard, quelque chose comme ça fonctionnerait probablement:
     
    figure
    plot(i, y1v)
    grid
     
    Je n’ai pas testé cela, mais cela devrait fonctionner.
    EDIT —
    Avec le code complet (non disponible lors de ma première publication), il devient:
     

    [email protected](x)exp(1/3*x.^3-1.2*x);
    [email protected](x,y)y*x.^2-1.2*y;
    x0=0; xx=2; y1=1; y2=1;
    xp=[0:0.01:2];
    h1=0.25;
    h2=0.1;
    i1=x0:h1:xx-h1; % Where h1 is the step size
    y1v = zeros(size(i1)); % Preallocate
    for k = 1:numel(i1)
    y1=y1+dy(i1(k),y1)*h1;
    y1v(k) = y1;
    end
    i2=x0:h2:xx-h2; % Where h2 is the step size
    y2v = zeros(size(i2)); % Preallocate
    for k = 1:numel(i1)
    y2=y2+dy(i2(k),y2)*h2;
    y2v(k) = y2;
    end
    figure
    plot(i1, y1v, i2, y2v)
    grid