/ Conversão de um loop 'for' com um incremento de 25 de C para MATLAB - c, matlab, para loop

Conversão de um loop 'for' com um incremento de 25 de C para MATLAB - c, matlab, para loop

eu tenho um for loop escrito em C:

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

Como posso convertê-lo em MATLAB?

Respostas:

6 para resposta № 1

o for laço

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

pode ser convertido para MATLAB para loop desta maneira:

>> for i = [0:25:1000]
# Code
end

10 para resposta № 2

O MATLAB para sintaxe de loop é

for i = values
program statements
:
end

Onde values é um dos

  • start:end
  • start:step:endou
  • uma matriz de valores.

A forma start:end pressupõe um passo de 1, enquanto você quer um passo (ou incremento) de 25, então use o segundo formulário. Da sua pergunta, for(int i = 0; i < 1000; i+=25) gera uma lista dos números 0 25 50 ... 950 975, isto é, não inclui 1000 (observe o i < 1000; no for loop), então não podemos usar end=1000 em fora a sintaxe do MATLAB. Em vez disso, use end = 1000-25 = 975:

for i = 0:25:975
program statements
:
end

produzirá os mesmos valores de i como o equivalente em C.

Nota: veja meu comentário sobre a resposta de Mithun Sasidharan. Sua resposta produz números diferentes para o C e o MATLAB para loops (e ele parece ter deixado cair o for de sua resposta MATLAB). Sua resposta dá 0 25 50 ... 950 975 para o loop C e 0 25 50 ... 950 975 1000 por seu código MATLAB.

EditarA resposta de Aashish Thite levanta um ponto importante sobre loops for e indexação de array que difere entre C e MATLAB.


2 para resposta № 3

Se você for usar "i" como um índice para varrer uma matriz, for i=0:25:1000 não funciona. O índice do primeiro elemento em uma matriz de matlab é 1. Portanto, use for i=1:25:1000