Преобразуйте между модулями измерения с помощью Symbolic Math Toolbox™. На этой странице показаны преобразования между модулями и между системами модулей, такими как СИ, CGS или определяемая пользователем модуль.
Преобразуйте между модулями измерения при помощи unitConvert
.
Перевести 1,2 метра в сантиметры.
u = symunit; len = 1.2*u.m; len = unitConvert(len,u.cm)
len = 120*[cm]
Преобразование len
до дюймов. Результат в точной символической форме. Разделите модули и преобразуйте в double.
len = unitConvert(len,u.in)
len = (6000/127)*[in]
[len units] = separateUnits(len); len = double(len)
len = 47.2441
Вычислите силу, необходимую для ускорения массы 5 кг при 2 м/с2.
m = 5*u.kg; a = 2*u.m/u.s^2; F = m*a
F = 10*(([kg]*[m])/[s]^2)
Преобразуйте результат в ньютон.
F = unitConvert(F,u.N)
F = 10*[N]
Совет
Используйте расширение вкладок для поиска имен модулей. Тип u.
, нажмите Tab и продолжите ввод.
Вычислим энергию, когда сила F
применяется на 3 метра. Преобразуйте результат в джоуль.
d = 3*u.m; E = F*d
E = 30*[N]*[m]
E = unitConvert(E,u.J)
E = 30*[J]
Преобразование E
к киловатт-часу.
E = unitConvert(E,u.kWh)
E = (1/120000)*[kWh]
Температуры могут представлять либо абсолютные температуры, либо различия температур. По умолчанию температуры приняты как различия. Преобразуйте температуры в абсолютные путем определения 'Temperature'
введите как 'absolute'
.
Преобразование 23
степени Цельсия до степеней Кельвина, сначала как различие температур, а затем как абсолютная температура.
u = symunit; T = 23*u.Celsius; relK = unitConvert(T,u.K,'Temperature','difference')
relK = 23*[K]
absK = unitConvert(T,u.K,'Temperature','absolute')
absK = (5923/20)*[K]
Потому что значение 0
безразмерно и 0
степени не могут быть представлены, преобразование 0
степени между модулями измерения температуры при помощи ввода камер.
Преобразование 0
степени Цельсия до степеней Фаренгейта.
tC = {0,u.Celsius}; tF = unitConvert(tC,u.Fahrenheit,'Temperature','Absolute')
tF = 32*[Fahrenheit]
Автоматическое преобразование в правильные модули путем преобразования в модуль систему. Кроме того, преобразование в производные модули модуля системы пытается выбрать удобные модули. Доступные модульные системы включают в себя СИ, CGS и США. Для всех блочных систем смотрите Список блочных систем. В сложение можно задать пользовательские системы модуля.
Вычислите силу из-за ускорения массы 5 кг на 2 м/с2. Получившиеся модули трудно считать. Преобразуйте их в удобные модули путем определения SI
и Derived
опции. unitConvert
автоматически выбирает правильные модули newton.
u = symunit; m = 5*u.kg; a = 2*u.m/u.s^2; F = m*a
F = 10*(([kg]*[m])/[s]^2)
F = unitConvert(F,'SI','Derived')
F = 10*[N]
Преобразование F
в модули США. По умолчанию преобразованные модули измерения являются базовыми модулями. Для удобства также преобразуйте в производные модули путем определения Derived
опция. Производные модули легче считать.
F = unitConvert(F,'US')
F = (1250000000000/17281869297)*(([ft]*[lbm])/[s]^2)
F = unitConvert(F,'US','Derived')
F = (20000000000000/8896443230521)*[lbf]
Преобразование F
к производным модулям CGS.
F = unitConvert(F,'CGS','Derived')
F = 1000000*[dyn]
Преобразуйте спецификацию в единицах СИ в производные модули США. Задайте абсолютную температуру.
loadCell = [ 3*u.kg; % capacity 50*u.mm; % length 15*u.mm; % width 10*u.mm; % height -10*u.Celsius; % minimum temperature 40*u.Celsius; % maximum temperature ]; loadCell = unitConvert(loadCell,'US','derived','Temperature','absolute')
loadCell = (300000000/45359237)*[lbm] (125/762)*[ft] (25/508)*[ft] (25/762)*[ft] 14*[Fahrenheit] 104*[Fahrenheit]
Если unitConvert
не выбирает предпочитаемый модуль, затем корректирует результат дальше unitConvert
команды. Здесь дюймы удобнее, чем ноги. Преобразуйте результат в дюймы.
loadCell = unitConvert(loadCell,u.inch)
loadCell = (300000000/45359237)*[lbm] (250/127)*[in] (75/127)*[in] (50/127)*[in] 14*[Fahrenheit] 104*[Fahrenheit]
Точные символические значения трудно считать. Разделите модули и преобразуйте в double
.
[loadCellDouble loadCellUnits] = separateUnits(loadCell); loadCellDouble = double(loadCellDouble)
loadCellDouble = 6.6139 1.9685 0.5906 0.3937 14.0000 104.0000
В качестве альтернативы аппроксимируйте результат к высокой точности при помощи vpa
. vpa
функция также сохраняет символические модули, потому что она возвращает символьный выход.
loadCell = vpa(loadCell)
loadCell = 6.6138678655463274216892140403508*[lbm] 1.968503937007874015748031496063*[in] 0.5905511811023622047244094488189*[in] 0.3937007874015748031496062992126*[in] 14.0*[Fahrenheit] 104.0*[Fahrenheit]
Перевести пять акров (ac
), чей модуль является акром обследования США, в метрическую область.
u = symunit; area = 5*u.ac_US; area = unitConvert(area,'SI')
area = (313632000000/15499969)*[m]^2
Пользовательские системы модуля обеспечивают гибкость в преобразовании модулей. Вы можете легко определить пользовательский модуль систему, изменив модулю систему по умолчанию. Кроме того, можно непосредственно определить систему. Определения модуля системы, основы модулей и производных модулей см. в Модуль System Definition.
В фотонике обычно используемыми модулями являются наносекунда (нс), электронный вольт (эВ) и нанометр (нм). Определите модуль систему с этими модулями путем изменения системы модуля СИ. Получите основу СИ и производные модули измерения при помощи baseUnits
и derivedUnits
. Измените модули при помощи subs
.
u = symunit; bunits = baseUnits('SI'); bunits = subs(bunits,[u.m u.s],[u.nm u.ns])
bunits = [ [kg], [ns], [nm], [A], [cd], [mol], [K]]
dunits = derivedUnits('SI'); dunits = subs(dunits,u.J,u.eV)
dunits = [ [F], [C], [S], [H], [V], [eV], [N], [lx], [lm], [Wb], [W], [Pa],... [Ohm], [T], [Gy], [Bq], [Sv], [Hz], [kat], [rad], [sr], [Celsius]]
Примечание
Не задайте переменные, вызываемые baseUnits
и derivedUnits
потому что переменные препятствуют доступу к baseUnits
и derivedUnits
функций.
Определите новый модуль систему при помощи newUnitSystem
.
phSys = newUnitSystem('photonics',bunits,dunits)
phSys = "photonics"
Вычислите энергию фотона частоты 1 ГГц и преобразуйте результат в производные модули phSys
система. Результат в электронном вольте.
f = 1*u.GHz; E = u.h_c*f; E = unitConvert(E,phSys,'Derived')
E = (44173801/10681177560000)*[eV]
Точный символический результат трудно считать. Разделите модули и преобразуйте их в double.
[E Eunits] = separateUnits(E); E = double(E)
E = 4.1357e-06
Завершив расчеты, удалите блочную систему.
removeUnitSystem(phSys)
Задайте пользовательскую систему модуля для атомарных модулей (au).
Задайте следующие базовые модули:
Размерность | Модуль | Реализация |
---|---|---|
Масса | Масса электронного покоя | u.m_e |
Элементарный заряд | Заряд электронов | u.e |
Длина | Радиус Бора (a 0) | u.Bohr |
Время | ħ/ E h | Определите при помощи |
u = symunit; t_au = newUnit('t_au',u.hbar/u.E_h); bunits = [u.m_e u.e u.Bohr u.t_au]
bunits = [ [m_e], [e], [a_0], [t_au]]
Задайте следующие производные модули:
Размерность | Модуль | Реализация |
---|---|---|
Угловой импульс | Константа Редуцированного Планка | u.hbar |
Энергия | Hartree | u.E_h |
Электрический дипольный момент | <reservedrangesplaceholder1> <reservedrangesplaceholder0> 0 | Определите при помощи |
Магнитный дипольный момент | 2 Бор магнитон = e ħ/2 m e | Определите при помощи |
Электрический потенциал | E h/ e | Определите при помощи |
edm_au = newUnit('edm_au',u.e*u.bohr); mdm_au = newUnit('mdm_au', u.e*u.hbar/(2*u.me)); ep_au = newUnit('ep_au', u.E_h/u.e); dunits = [u.hbar u.E_h u.edm_au u.mdm_au u.ep_au]
dunits = [ [h_bar], [E_h], [edm_au], [mdm_au], [ep_au]]
Определите модуль систему.
auSys = newUnitSystem('atomicUnits',bunits,dunits)
auSys = "atomicUnits"
Преобразуйте свойства протона в атомарные модули.
proton = [ 1.672621923e-27*u.kg; % mass 1.6021766208e-19*u.C; % charge 5.4e-24*u.e*u.cm; % electric dipole moment 1.4106067873e-26*u.J/u.T; % magnetic dipole moment ]; proton = unitConvert(proton,auSys,'Derived')
proton = 1836.1526726825404620381265471117*[m_e] 0.99999999176120807953267071600981*[e] 0.0000000000000010204521072979158730257341288851*[edm_au] 0.00048415958374162452452052339364507*pi*[mdm_au]
После завершения вычислений удалите модуль систему и добавленные модули.
removeUnitSystem(auSys) removeUnit([u.t_au u.edm_au u.mdm_au u.ep_au])
Модуль является набором базовых модулей измерения и производных модулей, которые следуют этим правилам:
Базовые модули должны быть независимыми по размерностям массы, времени, длине, электрическому току, интенсивности света, количеству вещества и температуре. Поэтому модуль система имеет до 7 базовых модулей. Пока независимость удовлетворена, любой модуль может быть базовым модулем, включая модули, как newton или watt.
Модуль может иметь менее 7 базовые модули. Для примера механические системы нуждаются в базовых модулях только для длины, массы и времени размерностей.
Производные модули в модуль системе должны иметь представление с точки зрения продуктов полномочий базовых модулей для этой системы. В отличие от базовых модулей, производные модули не должны быть независимыми.
Производные модули являются необязательными и добавляются для удобства представления. Для примера, кг м/с2 сокращенно ньютон.
Примером модуля системы является система модуля СИ, которая имеет 7 базовых модули: килограмм, секунду, метр, ампер, кандела, моль и кельвин. Существует 22 производных модули, найденных по вызову derivedUnits('SI')
.
baseUnits
| derivedUnits
| newUnitSystem
| removeUnit
| removeUnitSystem
| symunit
| unitConvert