Mathcad: правильно сканируем вектор или матрицу при произвольном значении ORIGIN
Казалось бы, проблема - проще некуда, но...
Как мне сделать цикл по элементам вектора независимо от значения системной переменнойORIGIN
? Функцияlast(вектор)
для определения номера последнего элемента есть, аfirst(вектор)
нету...
Способов, как минимум, два.
Во-первых, можно как раз текущее значение ORIGIN
и использовать как начало отсчёта:
j:=ORIGIN..last(v)
Во-вторых, номер первого элемента можно вычислить, используя стандартные функции last
(номер последнего элемента) и length
(количество элементов в векторе):
i:=last(v)-length(v)+1..last(v)
Как видно на скрине, оба метода прекрасно работают:
Цикл по элементам вектора, работающий при любом ORIGIN (MathCAD)
Для матриц можно добиться того же, используя стандартные функции rows
(количество строк) и cols
(количество столбцов) в сочетании с ORIGIN
:
Двойной цикл по элементам матрицы, работающий при любом ORIGIN (MathCAD)
Скачать этот пример в файле .xmcd (Mathcad 14/15) (31 Кб)
18.02.2015, 11:18 [10454 просмотра]