## Команды: Управление потоком данных

Все команды, управляющие потоком данных, являются свойствами слайда. Слайд имеет одну или несколько матриц. Входные строки данных поступают в ту матрицу, которая в данный момент объявлена текущей. Матрицы являются основным источником данных для построения графиков.

Свойство графика Series позволяет установить соответствие между столбцами данных в матрицах и свойствами серий точек.

### NewData n = [type1] name1 , ... , [typeN] nameN

Создать новую матрицу данных с именем или номером n, состоящую из N столбцов. Созданная матрица становится текущей. Все строки данных, следующие за этой командой, должны содержать по N значений. Каждый столбец задаётся своим именем name, перед которым через пробел может быть указан тип хранимых в столбце данных type:
byte — целые,
real — вещественные,
text — текстовые.
Если тип type опущен, предполагается real.

Имя матрицы n может быть опущено, но тогда к ней нельзя будет обратиться по имени в командах Data, ClearData, DeleteData и ResizeData.

### Data = n

Сделать текущей матрицу данных с именем или номером n. Число значений во всех строках данных, следующих за этой командой, должно быть равно числу столбцов в матрице n.

Совет:
Если на Вашем слайде несколько матриц, и строки данных поступают вперемежку, используйте команду Data.

### ClearData = n

Очистить матрицу с именем или номером n. Число строк в матрице становится равным нулю, число и типы столбцов сохраняются. Если имя опущено, очищается текущая матрица.

### DeleteData = n

Удалить все столбцы данных (включая выражения, заданные командой Let) в матрице с именем или номером n. Данный способ очистки является более радикальным по сравнению с ClearData. Если имя опущено, очищается текущая матрица.

### Let [type] name = expr

Создать в текущей матрице столбец данных с именем name и типом type, вычисляющийся по выражению expr. Выражения могут содержать в качестве переменных имена столбцов из одной или нескольких матриц данных. Тип данных type может принимать одно из трёх значений:
byte — целые,
real — вещественные,
text — текстовые.
Если тип type опущен и не определяется однозначно по типу выражения, то предполагается real.

Вычислимый столбец не содержится в исходных данных и не хранится в памяти, а вычисляется для каждой точки по заданному выражению expr.

Если имя name совпадает с именем уже существующего в текущей матрице столбца, то команда Let создаст ещё один столбец с тем же именем. В последующих выражениях и сериях будет использоваться второй столбец, а первый станет недоступен. Для переопределения столбца следует пользоваться командой Relet, имеющей аналогичный синтаксис.

Если знак равенства и выражение expr опущены, то создается столбец хранимых данных. Такие данные можно использовать в свойстве DS для синхронного выделения точек на нескольких сериях.

Совет:
Чтобы взять столбец данных из другого слайда, используйте в качестве имени переменной конструкцию slide.name, где slide — имя слайда.

Альтернативный способ: после команды #DataSlide=slide к столбцам указанного слайда можно обращаться без явного указания имени слайда и точки.

### Relet [type] name = expr

Создать в текущей матрице столбец данных с именем name и типом type, вычисляющийся по выражению expr. Команда аналогична команде Let за исключением того, что при попытке повторно определить столбец c тем же именем, предыдущий столбец заменяется новым везде, где он был использован.

### LetBounds name = [min; max]

Установить минимальное и максимальное значение для столбца данных с именем name. По умолчанию максимум и минимум вычисляются автоматически в процессе формирования данных. Необходимость изменить эти значения возникает в редких случаях, например, для явного задания диапазона интенсивностей цвета в свойствах I, LI, FI. Команда действует только на столбцы типа real, для остальных столбцов она игнорируется.

Если значения min и max не указаны, команда восстанавливает стандартные (автоматические) значения минимума и максимума.

### ResizeData [n] rows

Задать число строк в матрице с именем или номером n равным rows. Обычно число строк в матрице определяется автоматически по мере поступления строк данных. Команда ResizeData необходима только в том случае, когда все векторы в матрице были созданы командой Let и являются вычислимыми.

Если имя матрицы n опущено, команда применяется к текущей матрице.