for
ключевое слово для циклов
Синтаксис
for variable = expression, instruction ; .. ; instruction; end for variable = expression instruction .. instruction end for variable = expression do instruction .. instruction end
Аргументы
- variable
переменная, по которой ведётся цикл;
- expression
выражение, описывающее закон изменения переменной
variable
в заданных пределах; может быть вектором, матрицей, списком;- instruction
любые корректные инструкции Scilab.
- do
ключевое слово, отделяющее блок определения переменной цикла
variable
от блока инструкцийinstruction
Описание
Если источник
является массивом (однородным или нет), то
элемент
устанавливается в каждый из его столбцов (для гиперматрицы,
как matrix(expression, size(expression,1), -1))
), один за другим.
Оператор двоеточие colon используется для создания вектор-столбцов с регулярным
шагом между элементами и похож на традиционные циклы for
:
for variable = n1:step:n2, ..., end
Если expression
является списком, то variable
принимает значения списка одно за другим.
В соответствии с договорённостями по написанию кода в Scilab рекомендуется:
начинать новую инструкцию на новой строке;
писать не более одной простой инструкции на одной строке;
разбивать составные инструкции на множество строк.
Например, используйте:
for i = 1:5 disp(i); end
а не:
for i = 1:5, disp(i); end
Примеры
Тривиальные итерации (над столбцами вектора строк) :
for i = [2 4 5] factorial(i) end // По убыванию стоимости : for j = 4:-1:1 j end
цикл по столбцам матрицы :
M = [1 2 ; 3 4 ; 5 6]' for c = M, c, end
-> M = [1 2 ; 3 4 ; 5 6]' M = 1. 3. 5. 2. 4. 6. --> for c = M, c, end c = 1. 2. c = 3. 4. c = 5. 6.
Iterate on the columns of a cells array:
C = {%pi, "This is πι" ; %z^2, %t} for c = C, c, end
--> C = {%pi, "This is πι" ; %z^2, %t} C = [1x1 constant ] [1x1 string ] [1x1 polynomial] [1x1 boolean] --> for c = C, c, end c = [1x1 constant ] [1x1 polynomial] c = [1x1 string ] [1x1 boolean]
цикл по элементам списка :
for l = list([1 2;3 4], (1+%z)^3, 'example', [%F %T]); l, end
--> for l = list([1 2;3 4], (1+%z)^3, 'example', [%F %T]); l, end l = 1. 2. 3. 4. l = 2 3 1 +3z +3z +z l = example l = F T
Общие и вложенные итерированные циклы :
Смотрите также
История
Версия | Описание |
6.0.0 | Теперь for expression может быть вектором указателей на графические окна.
for is now protected:
Assignments like for=1 are no longer possible. |
2023.0.0 | The expression can be a hypermatrix. It is then processed
by column as matrix(expression, size(expression,1), -1) . |
Report an issue | ||
<< end | Управляющая логика | halt >> |