Ho un for
ciclo scritto in C:
for (int i = 0; i < 1000; i+=25)
Come posso convertirlo in MATLAB?
risposte:
6 per risposta № 1Il for
ciclo continuo
for (int i = 0; i <= 1000; i+=25)
può essere convertito in MATLAB per loop in questo modo:
>> for i = [0:25:1000]
# Code
end
10 per risposta № 2
Il MATLAB per la sintassi del loop è
for i = values
program statements
:
end
dove values
è uno di
start:end
start:step:end
, o- una serie di valori.
Il modulo start:end
assume un passo di 1
, mentre vuoi un passo (o incremento) di 25, quindi usa il secondo modulo. Dalla tua domanda, for(int i = 0; i < 1000; i+=25)
genera una lista dei numeri 0 25 50 ... 950 975
, cioè non include 1000
(notare il i < 1000;
nel for
loop), quindi non possiamo usare end=1000
in out sintassi MATLAB. Invece usa end = 1000-25 = 975
:
for i = 0:25:975
program statements
:
end
darà gli stessi valori di i
come l'equivalente C.
Nota: vedi il mio commento sulla risposta di Mithun Sasidharan. La sua risposta produce numeri diversi per C e MATLAB per i loop (e sembra che abbia abbandonato il for
dalla sua risposta MATLAB). La sua risposta dà 0 25 50 ... 950 975
per il ciclo C e 0 25 50 ... 950 975 1000
per il suo codice MATLAB.
modificare: La risposta di Aashish Thite solleva un punto importante sui loop e sull'indicizzazione degli array che differiscono tra C e MATLAB.
2 per risposta № 3
Se si intende utilizzare "i" come indice per la scansione attraverso un array, for i=0:25:1000
non funzionerà. L'indice del primo elemento in una matrice di MATLAB è 1. Quindi, usa for i=1:25:1000