he un bucle for
escrito en C:Conversión de un 'para' bucle con un incremento de 25 de C a MATLAB
for (int i = 0; i < 1000; i+=25)
¿Cómo puedo convertir a MATLAB?
he un bucle for
escrito en C:Conversión de un 'para' bucle con un incremento de 25 de C a MATLAB
for (int i = 0; i < 1000; i+=25)
¿Cómo puedo convertir a MATLAB?
El for
bucle
for (int i = 0; i <= 1000; i+=25)
se puede convertir en MATLAB para el bucle de esta manera:
>> for i = [0:25:1000]
# Code
end
Si se va a utilizar 'i' como un índice de exploración a través de una matriz, for i=0:25:1000
no funcionará. El índice del primer elemento de una matriz de MATLAB es 1. Por lo tanto utilizar for i=1:25:1000
El MATLAB for loop syntax es
for i = values
program statements
:
end
donde values
es uno de
start:end
start:step:end
, oLa forma start:end
supone un paso de 1
, mientras que usted quiere un paso (o incremento) de 25, a fin de utilizar la segunda forma. A partir de su 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 el i < 1000;
en el bucle for
), por lo que no podemos usar end=1000
en la sintaxis de MATLAB. En lugar utilizar end = 1000-25 = 975
:
for i = 0:25:975
program statements
:
end
se obtendrán los mismos valores de i
como el C equivalente.
Nota: ver mi comentario sobre la respuesta de Mithun Sasidharan. Su respuesta arroja diferentes números para C y MATLAB para bucles (y parece haber eliminado el for
de su respuesta MATLAB). Su respuesta da 0 25 50 ... 950 975
para el lazo C y 0 25 50 ... 950 975 1000
para su código MATLAB.
Editar: La respuesta de Aashish Thite plantea un punto importante acerca de los bucles e índices de matriz que difieren entre C y MATLAB.
Creo que te refieres a 'for i', no solo' i'. Y no necesita el '[]' que rodea la expresión de dos puntos. –
-1 Este ** no ** da la respuesta correcta: 'for (int i = 0; i <1000; i + = 25)' produce los números '0 25 50 ... 950 975' donde como' i = 0: 25: 1000' cede '0 25 50 ... 950 975 1000'. Si 'i <1000;' se sustituye por 'i <= 1000;' o si se usa 'i = 0: 25: 975', la salida coincidiría. – Chris
También tenga en cuenta que 'i = [0: 25: 1000]' en realidad significa algo diferente de 'i = 0: 25: 1000' - en el primer caso, en realidad está preasignando memoria para almacenar el vector' 0: 25: 1000 '. Esto puede no importar para este ciclo, pero compare con 'i = 1: inf' y' i = [1: inf] '. –