имам for
цикъл, написан в C:
for (int i = 0; i < 1000; i+=25)
Как мога да го преобразувам в MATLAB?
Отговори:
6 за отговор № 1Най- for
контур
for (int i = 0; i <= 1000; i+=25)
могат да бъдат превърнати в MATLAB за цикъл по този начин:
>> for i = [0:25:1000]
# Code
end
10 за отговор № 2
В MATLAB за синтактичен цикъл е
for i = values
program statements
:
end
където values
е един от
start:end
start:step:end
, или- масив от стойности.
Формата start:end
приема една крачка от 1
, докато искате стъпка (или увеличение) от 25, затова използвайте втория формуляр. От вашия въпрос, for(int i = 0; i < 1000; i+=25)
генерира списък с номерата 0 25 50 ... 950 975
, т.е. не включва 1000
(забележете i < 1000;
в for
цикъл), така че не можем да използваме end=1000
в синтаксиса на MATLAB. Вместо това използвайте end = 1000-25 = 975
:
for i = 0:25:975
program statements
:
end
ще даде същите стойности на i
като еквивалент С.
Забележка: вижте моя коментар относно отговора на Mithun Sasidharan. Отговорът му дава различни числа за C и MATLAB за цикли (и той изглежда е изпуснал for
от неговия отговор MATLAB). Отговорът му дава 0 25 50 ... 950 975
за цикъл C и 0 25 50 ... 950 975 1000
за своя MATLAB код.
редактиране: Отговорът на Aashish Thite повдига важна точка за за цикли и матрично индексиране, което се различава между C и MATLAB.
2 за отговор № 3
Ако ще използвате "i" като индекс за сканиране чрез масив, for i=0:25:1000
няма да работи. Индексът на първия елемент в масив от MATLAB е 1. Така че използвайте for i=1:25:1000