БлогNot. Mathcad: правильно сканируем вектор или матрицу при произвольном значении ORIGIN

Mathcad: правильно сканируем вектор или матрицу при произвольном значении ORIGIN

Казалось бы, проблема - проще некуда, но...

Как мне сделать цикл по элементам вектора независимо от значения системной переменной ORIGIN? Функция last(вектор) для определения номера последнего элемента есть, а first(вектор) нету...

Способов, как минимум, два.

Во-первых, можно как раз текущее значение ORIGIN и использовать как начало отсчёта:

j:=ORIGIN..last(v)

Во-вторых, номер первого элемента можно вычислить, используя стандартные функции last (номер последнего элемента) и length (количество элементов в векторе):

i:=last(v)-length(v)+1..last(v)

Как видно на скрине, оба метода прекрасно работают:

Цикл по элементам вектора, работающий при любом ORIGIN (MathCAD)
Цикл по элементам вектора, работающий при любом ORIGIN (MathCAD)

Для матриц можно добиться того же, используя стандартные функции rows (количество строк) и cols (количество столбцов) в сочетании с ORIGIN:

Двойной цикл по элементам матрицы, работающий при любом ORIGIN (MathCAD)
Двойной цикл по элементам матрицы, работающий при любом ORIGIN (MathCAD)

 Скачать этот пример в файле .xmcd (Mathcad 14/15) (31 Кб)

18.02.2015, 11:18 [10222 просмотра]


теги: алгоритм mathcad

К этой статье пока нет комментариев, Ваш будет первым