Come indicizzare un ciclo while

di il
3 risposte

Come indicizzare un ciclo while

Ciao a tutti

sto cominciando a capire le potenzialità di matlab ed ora avrei bisogno se possibile di un vostro aiuto

Io ho questo ciclo while che funziona per bisezione e calcola la temperatura T di una cosa;
Vorrei indicizzare il processo e chiedere N cicli while uguali, che ogni ciclo mi fornisca Ti

alla fine vorrei che ne uscisse il vettore T=[T1,T2,......TN] ma non ho idea di come farlo


Qualche aiuto? grazie in anticipo

3 Risposte

  • Re: Come indicizzare un ciclo while

    Dovresti riformulare la domanda aggiungendo qualche spiegazione su cosa si vuole ottenere perchè, al momento, non è chiaro cosa si intenda con "Vorrei indicizzare il processo e chiedere N cicli while uguali, che ogni ciclo mi fornisca T"

    Cosa vuol dire "N cicli while"'?

    Forse qualcosa del tipo:
    
    
    for i=1:N
    ...
    ...
       while(x < y)
          ...
          ...
       end
    end
    
    
  • Re: Come indicizzare un ciclo while

    Ciao raf! Allora in pratica io ho

    While abs(a-b)>10*eps

    F=...
    Fa=...
    Fb=...

    If..


    End

    T=(a+b)/2

    Ma io devo fare questo ciclo N volte per calcolare N T diverse (la funziona F dipende dai valori di un vettore, se applicata al primi valore del vettore mi da T1 e così via). Quindi vorrei capire in che modo chiedere N cicli per F applicata a N valori diversi per ottenere T1,T2,....,TN
  • Re: Come indicizzare un ciclo while

    Il modo più semplice per iterare il calcolo effettuato all'interno del ciclo while descritto nella domanda consiste nel "racchiuderlo" all'interno di un altro loop (es. ciclo for, oppure while).

    Nell'esempio che segue, viene considerata, come riportato nella domanda, la presenza di un ipotetico vettore di input "input_vett" ed il ciclo while viene racchiuso in un ciclo for che itera sugli elemento del vettore:
    
    %
    % Ipotetico vettore di input
    %
    input_vett=[1 2 3 4 5];
    %
    % Possibile ciclo for sui valori dell'ipotetico vettore "input_vett"
    %
    num_dati=length(input_vett)
    
    for i=1:num_dati
       
       while(abs(a-b)>10*eps)
          
          F=
          Fa=
          Fb=
          
          if
          end
          
       end
       
       %
       %    T viene definito implicitamente come vettore e ad ogni iterazione
       %    il valore di (a+b)/2 viene assegnato ad un elemenmto del vettore T
       %
       %    T=(a+b)/2
       T(i)=(a+b)/2
    end
    
    Al termine di ogni iterazione del ciclo for il valore di T calcolato al termine del ciclo while viene assegnato alla variabile T che viene implicitamente definita come vettore.

    Nota la differenza tra le due istruzioni, quella originale e quella modificata:

    T=(a+b)/2
    T(i)=(a+b)/2


    Hope this helps.
Devi accedere o registrarti per scrivere nel forum
3 risposte