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 № 1o 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:end
ou- 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