/ / Преобразуване на линия "за" с увеличение от 25 от C до MATLAB - c, matlab, for-loop

Преобразуване на линия "за" с увеличение от 25 ° C до MATLAB - c, matlab, for-loop

имам 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