symunit

Модули измерения

Синтаксис

u = 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)

Если вы незнакомы с различиями между символьной и числовой арифметикой, смотрите, Выбирают Symbolic or Numeric 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