linalg
:: vectorOf
Введите спецификатор для векторов
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
linalg::vectorOf(R
) linalg::vectorOf(R
,n
)
linalg::vectorOf(R)
является спецификатором типа, представляющим все объекты области категории Cat::Matrix
с кольцевым R
компонента и количеством строк или количеством столбцов, равных одному.
linalg::vectorOf(R,n)
является спецификатором типа, представляющим все объекты области категории Cat::Matrix
с кольцевым R
компонента и количеством строк, равных n
и количеству столбцов, равных одному, или наоборот.
linalg::vectorOf(Type::AnyType,n)
является спецификатором типа, представляющим все объекты области категории Cat::Matrix
с произвольным кольцевым R
компонента и количеством строк, равных n
и количеству столбцов, равных одному, или наоборот.
linalg::vectorOf
может использоваться вместе с testtype
, чтобы проверять, является ли объект MuPAD® вектором:
MatZ := Dom::Matrix(Dom::Integer): v := MatZ([1, 0, -1])
Следующий FALSE
урожаев, потому что v
является 3-мерным вектором:
testtype(v, linalg::vectorOf(Dom::Integer, 4))
Следующий FALSE
урожаев, потому что v
задан по целым числам:
testtype(v, linalg::vectorOf(Dom::Rational))
Конечно, v
может быть преобразован в вектор по rationals, как показано следующим вызовом:
bool(coerce(v, Dom::Matrix(Dom::Rational)) <> FAIL)
Это показывает, что testtype
в сочетании с linalg::vectorOf(R)
не проверяет, может ли объект быть преобразован в вектор по заданному кольцевому R
компонента. Это проверяет, только если объект является вектором, чьим звонком компонента является R
.
Следующий тест возвращает TRUE
, потому что v
является 3-мерным вектором:
testtype(v, linalg::vectorOf(Type::AnyType, 3))
linalg::vectorOf
может также использоваться для проверки параметров процедур. Следующая процедура вычисляет ортогональное дополнение 2-мерного вектора:
orth := proc(v:linalg::vectorOf(Type::AnyType, 2)) begin [v[1], v[2]] := [-v[2],v[1]]; return(v) end: u := matrix([[1, 2]]); u_ := orth(u)
При вызове процедуры orth
с недопустимым параметром приводит к сообщению об ошибке:
orth([1, 2])
Error: Invalid object '[1, 2]'. Type of argument number 1 must be 'slot(Type, vectorOf)(Type::AnyType, 2)'. Evaluating: orth
|
Звонок компонента: область библиотеки |
|
Положительное целое число |
Введите выражение доменного Типа типа.