tengo un for
bucle escrito en C:
for (int i = 0; i < 1000; i+=25)
¿Cómo puedo convertirlo a MATLAB?
Respuestas
6 para la respuesta № 1los for
lazo
for (int i = 0; i <= 1000; i+=25)
Se puede convertir a MATLAB for loop de esta manera:
>> for i = [0:25:1000]
# Code
end
10 para la respuesta № 2
El matlab para sintaxis de bucle es
for i = values
program statements
:
end
dónde values
es uno de
start:end
start:step:end
, o- Una matriz de valores.
La forma start:end
asume un paso de 1
, mientras que quieres un paso (o incremento) de 25, así que usa la segunda forma. De tu pregunta, for(int i = 0; i < 1000; i+=25)
genera una lista de los números 0 25 50 ... 950 975
, es decir, no incluye 1000
(Observe la i < 1000;
en el for
bucle), así que no podemos "t usar end=1000
en sintaxis de MATLAB. En lugar de usar end = 1000-25 = 975
:
for i = 0:25:975
program statements
:
end
dará los mismos valores de i
como el equivalente de C.
Nota: vea mi comentario sobre la respuesta de Mithun Sasidharan. Su respuesta arroja diferentes números para la C y MATLAB para los bucles (y parece que ha abandonado la for
de su respuesta MATLAB). Su respuesta da 0 25 50 ... 950 975
para el bucle C y 0 25 50 ... 950 975 1000
por su código MATLAB.
Editar: La respuesta de Aashish Thite plantea un punto importante sobre los bucles y la indexación de matrices que difiere entre C y MATLAB.
2 para la respuesta № 3
Si va a utilizar "i" como un índice para escanear a través de una matriz, for i=0:25:1000
no trabajará. El índice del primer elemento en una matriz de matlab es 1. Por lo tanto, use for i=1:25:1000