Калькулятор матриц

Печать Предыдущая страница Стартовая страница Следующая страница

Калькулятор матриц предназначен для проведения операций алгебры карт над матрицами качеств и высот. Алгебра карт (локальные операции) — операции, при проведении которых, на основе одной или нескольких исходных матриц, создаётся новая матрица, причем значения ячеек этой матрицы зависят только от значений ячеек исходных матриц, имеющих одинаковые координаты.

 

 

Matrix_calculator

 

Калькулятор матриц. 1 – Панель инструментов. 2 – «Выходной файл». 3 – «Легенда». 4 – «Область вычислений».

5 – «Матрицы». 6 – «Операторы». 7 – «Выражение»

 

Панель инструментов содержит 3 кнопки:

button_1 выход;

button_2 помощь;

button_3 начать расчёт.

 

Панель «Выходной файл» предназначена для выбора пути сохранения создаваемой матрицы качеств.

 

На панели «Легенда» можно настроить количество цветов в палитре создаваемой матрицы, которое может изменяться от 1 до 32. Также с помощью галочки «Редактировать градации» можно включить ручное редактирование, при котором каждый цвет можно задавать вручную. Если галочка «Редактировать градации» не стоит, то пользователь задаёт только крайние цвета, а все промежуточные рассчитываются автоматически.

 

На панели «Область вычислений» можно выбрать область построения четырьмя способами:

-        «Вся область» – матрица будет построена в пределах прямоугольной области, охватывающей все открытые матрицы качеств и высот, проекция которых совпадает с проекцией документа;

-        «Прямоугольная область» – матрица будет построена в пределах выбранной прямоугольной области;

-        «Контур объекта» – матрица будет построена в пределах прямоугольной области, охватывающей выбранный объект;

-        «Область по координатам» – матрица будет построена в пределах прямоугольной области, заданной координатами двух углов.

 

Панель «Матрицы» содержит список всех открытые матриц качеств и высот, проекция которых совпадает с проекцией документа. Двойной щелчок по названию матрицы добавит её в поле ввода выражений.

 

Панель «Операторы» предназначена для удобной вставки операторов в выражение.

Поддерживаются следующие математические операции:

button_+ сложение;

button_- вычитание;

button_umn умножение;

button_del деление;

button_stepen возведение в степень;

button_log логарифм;

button_logN натуральный логарифм;

button_sin синус угла в радианах;

button_cos косинус угла в радианах;

button_tg тангенс угла в радианах;

button_ctg котангенс угла в радианах;

button_asin арксинус в радианах;

button_acos арккосинус в радианах;

button_atg арктангенс в радианах;

button_actg арккотангенс в радианах;

button_exp экспонента;

button_mod модуль;

button_round округление;

button_ost остаток от деления.

 

Разрешено использование скобок button_scob1 и button_scob2.

Условный оператор button_con  позволяет присвоить значения ячейкам создаваемой матрицы на основе заданного условия. Данный оператор состоит из трёх частей:

-        условие;

-        значение, которое будет присвоено ячейке матрицы при выполнении условия;

-        значение, которое будет присвоено при невыполнении условия.

 

Проверка ячеек на отсутствие данных –button_isnull. При использовании этого оператора ячейкам создаваемой матрицы будет присвоено значение 1, если соответствующие ячейки исходной матрицы имеют значение NULL, то есть в них отсутствуют данные, и 0 в противном случае.

 

Установка значения ячеек NULL – button_setnull. Данный оператор может быть использован только в качестве присваиваемого значения в условном операторе. При использовании данного оператора, соответствующим ячейкам создаваемой матрицы будет присвоено значение NULL, то есть они не будут содержать данных и отображаться на карте.

Операции сравнения:

button_ravno равно;

button_neravno не равно;

button_more больше;

button_more_ravno больше или равно;

button_smol меньше;

button_smol_ravno меньше или равно.

 

Если использовать операторы сравнения вне условного оператора, то в создаваемой матрице всем ячейкам, кроме тех, которые имеют значение NULL, будет присвоено значение 1, если выполняется заданное условие, и 0 в противном случае.

Логические операции:

button_and и;

button_or или;

button_not не.

 

Панель «Выражение» содержит поле ввода математических и логических выражений. Это поле предназначено для ввода выражений с помощью кнопок быстрого ввода, списка доступных матриц и клавиатуры.

Если при выполнении какой-либо операции оказывается, что ячейка одной из исходных матриц имеет значение NULL, то есть не содержит данных, то соответствующей ячейке создаваемой матрицы также будет присвоено значение NULL. Исключением является оператор isNull, в результате использования которого всем ячейкам создаваемой матрицы будет присвоено значение 1 или 0.

Если в выражении указано несколько матриц с разными размерами ячеек, то размер ячеек создаваемой матрицы будет равен размеру ячеек первой матрицы в выражении. Для расчёта значения каждой ячейки создаваемой матрицы будут взяты значения ближайших к ней ячеек исходных матриц.

 

Примеры.

1. Чтобы построить матрицу, элементы которой были бы равны сумме элементов матриц FirstMatrix.mtq и SecondMatrix.mtq нужно ввести следующее выражение:

"1.FirstMatrix.mtq" + "2.SecondMatrix.mtq"

2. Чтобы построить матрицу, элементы которой были бы равны элементам матрицы FirstMatrix.mtq, округлённым в ближайшую сторону, нужно ввести следующее выражение:

rnd("1.FirstMatrix.mtq")

3. Если есть матрица Height.mtq, в элементах которой хранится значение высоты, то можно узнать области, в которых высота больше 0, введя следующее выражение:

"1.Height.mtq" > 0

Области результирующей матрицы, в которых условие выполняется, будут иметь значение 1, а в которых не выполняется – 0.

4. Чтобы отобразить только области где значение высоты, хранимое в элементах матрицы Height.mtq, меньше 0, нужно ввести следующее выражение:

Con("1.Height.mtq" < 0; "1.Height.mtq"; setNull)

5. Чтобы построить матрицу, значения элементов которой были бы равны значениям элементов матрицы FirstMatrix.mtq, при этом, чтобы она была построена только на области, где элементы матрицы SecondMatrix.mtq имеют значение NULL, нужно ввести следующее выражение:

Con(isNull("2.SecondMatrix.mtq"); "1.FirstMatrix.mtq"; setNull)