Печатает содержимое матрицы в журнал экспертов.
void matrix::Print(
|
Параметры
flags
[in] Флаги для управления выводом матрицы в журнал.
format_string
[in] Строка для форматирования чисел, если установлен флаг MATRIX_PRINT_USE_FORMATSTRING.
Возвращаемое значение
Метод не возвращает никакого значения. В случае неудачи (неинициализированная матрица, пустая форматная строка, неправильная форматная строка) взводится ошибка, код которой можно узнать при помощи GetLastError().
Флаги могут принимать комбинации следующих значений:
Флаг |
Значение |
Описание |
|---|---|---|
MATRIX_PRINT_USE_FORMATSTRING |
0x0001 |
Использовать форматную строку при выводе элемента матрицы |
MATRIX_PRINT_INFO |
0x0002 |
Первой строкой печатать информацию о матрице: класс, тип и размеры |
MATRIX_PRINT_INDEXES |
0x0004 |
Печатать индексы строк и столбцов |
MATRIX_PRINT_FULL |
0x0008 |
Полностью вывести матрицу в лог без каких-либо усечений |
MATRIX_PRINT_PARTIAL_LEFT |
0x0010 |
Вывести в лог левую часть матрицы |
MATRIX_PRINT_PARTIAL_RIGHT |
0x0020 |
Вывести в лог правую часть матрицы |
MATRIX_PRINT_PARTIAL_TOP |
0x0040 |
Вывести в лог верхнюю часть матрицы |
MATRIX_PRINT_PARTIAL_BOTTOM |
0x0080 |
Вывести в лог нижнюю часть матрицы |
MATRIX_PRINT_PARTIAL |
(MATRIX_PRINT_PARTIAL_LEFT | MATRIX_PRINT_PARTIAL_RIGHT | MATRIX_PRINT_PARTIAL_TOP | MATRIX_PRINT_PARTIAL_BOTTOM) |
Вывести в лог указанные части матрицы |
Примечание
Матрицы с количеством строк <=50 и количеством столбцов, которые помещаются в буфер длиной менее 512 символов, выводятся в лог полностью, без усечений. Например, вывод матрицы 50 x 21 без форматирования будет произведён без усечений. Вывод матрицы 50 x 56 с элементами в диапазоне от 0 до 1 с форматной строкой "%.5f" также будет произведён без усечений. Для гарантированного вывода матрицы в лог без усечений необходимо использовать флаг MATRIX_PRINT_FULL.
Примеры:
Плохо обусловленная матрица с диапазоном значений в 50+ порядков:
matrix matrix_a(5,10);
|
Первый Print с параметрами по умолчанию:
[[ 0.5590638740824219, -0.18868502909054163, 0.5922359152678949, 0.8639735974986045, -0.7719553713155807, -0.815408580893513, 0.7818219973197724, -0.728249088332115, -0.7753896945564518, 0.5773408984712654] |
Второй Print с выводом индексов и форматированием:
0 1 2 3 4 5 6 7 8 9
|
Пример с выводом информации о матрице:
matrix matrix_t=(matrix::Random(5,5)).TriL();
|
Выводим нижнетреугольную матрицу:
lower triangular matrix TYPE_MATRIXD rows=5 cols=5
|
Примеры с частичным выводом:
matrix matrix_c=matrix::Random(100,56);
|
В лог выводится верхняя левая часть матрицы:
general matrix TYPE_MATRIXD rows=100 cols=56
|
Ещё пример:
matrix matrix_c=matrix::Random(100,56);
|
Частичный вывод левой части матрицы:
general matrix TYPE_MATRIXD rows=100 cols=56
|
Ещё пример:
matrix matrix_c=matrix::Random(100,56);
|
Частичный вывод нижней части матрицы:
general matrix TYPE_MATRIXD rows=100 cols=56
|
Видно, что размер частичного вывода — 5 строк и 5 столбцов. Это значение по умолчанию.
Количеством выводимых строк и столбцов можно управлять через флаги. Параметр flags имеет тип ulong. Младшая половина предназначена собственно под флаги. В старшую половину (два 16-битных слова) можно записать количество строк и столбцов.
matrix matrix_c=matrix::Random(100,56);
|
Частичный вывод 4 частей матрицы с 7 строками и 4 столбцами:
general matrix TYPE_MATRIXD rows=100 cols=56
|