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)

Если вы незнакомы с различиями между символьной и числовой арифметикой, смотрите, Выбирают Numeric or Symbolic Arithmetic.

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

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

Найдите скорость требуемой переместиться 5 км в 2 часы.

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

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

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

Для полного модульного рабочего процесса см. Пример по Единицам измерения.

Преобразуйте между модулями

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

Вычислите силу, требуемую ускорять 2 kg 5 m/s2. Выражение автоматически не переписано в терминах Ньютонов.

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 cm к дюймам.

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