/ / Conversione di un ciclo 'for' con un incremento di 25 da C a MATLAB - c, matlab, for-loop

Conversione di un ciclo "for" con un incremento di 25 da C a MATLAB - c, matlab, for-loop

Ho un for ciclo scritto in C:

for (int i = 0; i < 1000; i+=25)

Come posso convertirlo in MATLAB?

risposte:

6 per risposta № 1

Il 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