Di per sè, impostare un ciclo for con
k=0:0.001:1 non è sbagliato, il ciclo for in questo caso effettuerà 1001 iterazioni; il problema (l'errore) consiste nel fatto che, in questo caso, non puoi usare
k come indice per il vettore
wr perchè:
[*] nella prima iterazione ==> wr(k) ==> wr(0) ==> errore: gli indici di un vettore devono essere
interi positivi > 0
[*] nella seconda iterazione ==> wr(k) ==> wr(0.001) ==> errore: gli indici di un vettore devono essere
interi positivi > 0
Come riportato nella precedente risposta, se vuoi impostare il ciclo con
k=0:0.001:1 devi utilizzare un contatore come indice per i vettori ed incrementarlo ad ogni iterazione.
Ad esempio:
cont=1;
wr(1)=1;
for k=0:0.001:1
wr(cont+1)=wr(cont)+k;
cont=cont+1
end
Inoltre, nella prima domanda, hai scritto:
wr(k+1)=(Cm-Cr/J)(t(k+1)-t(k))+wr(k)
dove
t sembrava essere un vettore, mentre oggi hai scritto:
... Ad un certo istante che sarà 0.001 secondi, allora avrò tk=0.001 ....
ti rinnovo la domanda: cosa è
t?
Sembrerebbe che
t non sia un vettore, ma una variabile (un tempo?) che assume i valori da
0 a
1 con passo
0.001.
se è così, questo caso,
t coincide con
k; oltre a questo,
t(k+1)-t(k)
sarà costante ad ogni iterazione e corrisponderà all'incremento dell'indice del loop (0.001).
Puoi confermare che "t" sia effettivamente il passo del loop (0.001)? e non un vettore?
Da ultimo, assumo che, a parte le considerazioni sugli indici dei vettori,
wr(k+1)=(Cm-Cr/J)(t(k+1)-t(k))+wr(k)
stia per
wr(k+1)=(Cm-Cr/J) * (t(k+1)-t(k))+wr(k)
(in ogni caso, manca l'operatore tra
(Cm-Cr/J) e
(t(k+1)-t(k))
Se ho capito quello che vuoi realizzare (
e non ne sono affatto sicuro), una possibilità potrebbe essere quella che segue.
Nota che, per rendere "eseguibile" il codice ho definito, in modo arbitrario valori delle costanti "Cm", "Cr" e "J".
Ovviamente dovrai usare i "tuoi valori".
Nota ancora, che bisogna inizializzare in qualche modo il vettore "wr"; nell'esempio l'ho inizializzato a 0.
Per favore VERIFICA CHE L'IMPOSTAZIONE SIA CORRETTA, come ti ripeto, NON SONO SICURO DI AVER COMPRESO LA DOMANDA E L'ESEMOIO CHE SEGUE POTREBBE NON ESSERE CORRETTO
% Inizializzazione del contatore
cont=1;
% Inizializzazione del vettore "wr"
wr(1)=0;
% Inizializzazione delle costanti "Cm", "Cr" e "J"
Cm=1;
Cr=2;
J=3;
for k=0:0.001:1
% wr(k+1)=(Cm-Cr/J)(t(k+1)-t(k))+wr(k)
wr(cont+1)=(Cm-Cr/J)*(0.001)+wr(cont);
% Incremento del contatore
cont=cont+1;
end