2011-12-12 7 views

Respuesta

6

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 
+2

Creo que te refieres a 'for i', no solo' i'. Y no necesita el '[]' que rodea la expresión de dos puntos. –

+3

-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

+4

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] '. –

2

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

10

El MATLAB for loop syntax es

for i = values 
    program statements 
     : 
end 

donde values es uno de

  • start:end
  • start:step:end, o
  • una matriz de valores.

La 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.

Cuestiones relacionadas