Преобразуйте между модулями измерения с помощью 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