symunit

Единицы измерения

Синтаксис

Описание

пример

u = symunit возвращает модули набора. Затем задайте любой модуль измерения при помощи u.unit. Для примера задайте 3 метров как 3*u.m. Поддерживаются общие альтернативные имена для модулей, такие как u.meter и u.metre. Множественные значения не поддерживаются.

Примеры

Задайте единицы измерения

Перед указанием единиц загружайте модули при помощи symunit. Затем задайте модуль измерения при помощи записи через точку.

Задайте длину 3 метров. Можно также использовать псевдонимы u.meter или u.metre.

u = symunit;
length = 3*u.m
length =
3*[m]

Совет

Используйте расширение вкладок для поиска имен модулей. Тип u., нажмите Tab и продолжите ввод.

Задайте ускорение из-за силы тяжести 9.81 метров в секунду за секунду. Поскольку модулями являются символьные выражения, числовые входы преобразуются в точные символические значения. Здесь, 9.81 преобразуется в 981/100.

g = 9.81*u.m/u.s^2
g =
(981/100)*([m]/[s]^2)

Если вы незнакомы с различиями между символьной и числовой арифметикой, см. «Выбор числовой или символьной арифметики».

Операции с модулями измерения и преобразование в двойной точности

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

Найдите скорость, необходимую для путешествия 5 км в 2 часов.

u = symunit;
d = 5*u.km;
t = 2*u.hr;
s = d/t
s =
(5/2)*([km]/[h])

Значение 5/2 является символическим. Вы можете предпочитать двойной выход или потребовать двойной вывод для MATLAB® функция, которая не принимает символические значения. Преобразуйте в double путем разделения числового значения с помощью separateUnits а затем использование double.

[sNum,sUnits] = separateUnits(s)
sNum =
5/2
sUnits =
1*([km]/[h])
sNum = double(sNum)
sNum =
    2.5000

Полные модули рабочего процесса см. в разделе «Единицы измерения Руководства».

Преобразование между модулями

Используйте предпочитаемый модуль путем переписывания модулей используя unitConvert. Кроме того, вместо определения конкретных модулей можно указать, что выход должен быть в терминах модулей СИ.

Вычислите силу, необходимую для ускорения 2 кг по 5 м/с2. Выражение не переписывается автоматически в терминах Newtons.

u = symunit;
m = 2*u.kg;
a = 5*u.m/u.s^2;
F = m*a
F =
10*(([kg]*[m])/[s]^2)

Преобразуйте выражение в ньютоны при помощи unitConvert.

F = unitConvert(F,u.N)
F =
10*[N]

Преобразование 5 см до дюймов.

length = 5*u.cm;
length = unitConvert(length,u.in)
length =
(250/127)*[in]

Преобразование length в модули СИ. Результат в метрах.

length = unitConvert(length,'SI')
length =
(1/20)*[m]

Упрощение модулей измерения одной и той же размерности

Упростите выражения, содержащие модули той же размерности, используя simplify. Модули не упрощаются автоматически или проверяются на согласованность, если вы не вызываете simplify.

u = symunit;
expr = 300*u.cm + 40*u.inch + 2*u.m
expr =
300*[cm] + 40*[in] + 2*[m]
expr = simplify(expr)
expr =
(3008/5)*[cm]

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

Температура: Абсолютные и разностные формы

По умолчанию температуры приняты, чтобы представлять различия температур. Для примера, 5*u.Celsius представляет собой различие температуры 5 степеней Цельсия. Это предположение позволяет проводить арифметические операции по значениям температур и преобразованию между шкалами температур.

Чтобы представлять абсолютные температуры, используйте степени Кельвина, чтобы вы не должны отличать абсолютную температуру от различия температур.

Преобразование 23 степени Цельсия к Кельвину, обрабатывая температуру сначала как различие температур, а затем как абсолютную температуру.

u = symunit;
T = 23*u.Celsius;
diffK = unitConvert(T,u.K)
diffK =
23*[K]
absK = unitConvert(T,u.K,'Temperature','absolute')
absK =
(5923/20)*[K]

Совет

  • 1 представляет безразмерный модуль. Следовательно, isUnit(sym(1)) возвращает логический 1 (true).

  • Некоторые нелинейные модули, такие как децибелы, не реализованы, потому что арифметические операции не возможны для этих модулей.

  • Вместо того, чтобы использовать запись через точку для задания модулей, можно также использовать строковый вход как symunit(unit). Для примера, symunit('m') определяет единичный счетчик.

Введенный в R2017a
Для просмотра документации необходимо авторизоваться на сайте