Преобразуйте между модулями с Symbolic Math Toolbox™. Эта страница показывает преобразования между модулями и между системами модулей, такими как SI, CGS или пользовательская модульная система.
Преобразуйте между модулями при помощи unitConvert.
Преобразуйте 1,2 метра в сантиметры.
u = symunit; len = 1.2*u.m; len = unitConvert(len,u.cm)
len = 120*[cm]
Преобразуйте len в дюймы. Результат находится в точной символьной форме. Отдельные модули и преобразовывают, чтобы удвоиться.
len = unitConvert(len,u.in)
len = (6000/127)*[in]
[len units] = separateUnits(len); len = double(len)
len = 47.2441
Вычислите сила должна была ускорить массу 5 кг в 2 m/s2.
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]
Автоматически преобразуйте в правильные модули путем преобразования в модульную систему. Далее, преобразование в производные единицы модульной системы пытается выбрать удобные модули. Доступные модульные системы включают SI, CGS и США. Для всех модульных систем см. Модульный Список Систем. Кроме того, можно задать пользовательские модульные системы.
Вычислите силу из-за 5-килограммовой массы, ускоряющейся в 2 m/s2. Получившиеся модули трудно считать. Преобразуйте их в удобные модули путем определения опций Derived и SI. unitConvert автоматически выбирает правильные модули ньютона.
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]
Преобразуйте спецификацию в SI к производным единицам США. Задайте температуры как абсолютные.
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; area = unitConvert(area,'SI')
area = (313632000000/15499969)*[m]^2
Пользовательские модульные системы обеспечивают гибкость в преобразовании единиц. Можно легко задать пользовательскую модульную систему путем изменения модульной системы по умолчанию. Также можно задать систему непосредственно. Для определений модульной системы основные единицы и производные единицы, видят Модульное Системное Определение.
В фотонике обычно используемые модули являются наносекундой (не уточнено), электрон-вольтом (эВ) и нанометром (нм). Задайте модульную систему с этими модулями путем изменения системы единицы СИ. Получите основные единицы SI и производные единицы при помощи 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, потому что переменные предотвращают доступ к функциям derivedUnits и baseUnits.
Задайте новую модульную систему при помощи 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 = 0.0000041356676623401643884479280999879*[eV]
Точный символьный результат трудно считать. Разделите модули и преобразуйте, чтобы удвоиться.
[E Eunits] = separateUnits(E); E = double(E)
E = 4.1357e-06
После завершающихся вычислений удалите модульную систему.
removeUnitSystem(phSys)
Задайте пользовательскую модульную систему для атомарных модулей (au).
Задайте эти основные единицы:
| Размерность | Модуль | Реализация |
|---|---|---|
| Масса | Электронная масса отдыха | u.m_e |
| Элементарный заряд | Заряд электрона | u.e |
| Длина | Боровский радиус (a 0) | u.Bohr |
| Время | ħ/Eh | Задайте при помощи |
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 |
| Электрический дипольный момент | e a 0 | Задайте при помощи |
| Магнитный дипольный момент | 2 магнетона Бора = e ħ/2me | Задайте при помощи |
| Электрический потенциал | 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.672624898e-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.1559670674356174696928918542*[m_e]
1.0000000000000000578208778346486*[e]
0.0000000000000010204521077472272506008435148061*[edm_au]
0.0015210322058038370229109632800588*[mdm_au]После завершающихся вычислений удалите модульную систему и добавленные модули.
removeUnitSystem(auSys) removeUnit([u.t_au u.edm_au u.mdm_au u.ep_au])
Модульная система является набором основных единиц и производных единиц, который следует этим правилам:
Основные единицы должны быть независимыми с точки зрения массы размерностей, время, длина, электрический ток, яркая интенсивность, количество вещества и температура. Поэтому модульная система имеет до 7 основных единиц. Пока независимость удовлетворена, любой модуль может быть основной единицей, включая модули, такие как ньютон или ватт.
Модульная система может иметь меньше чем 7 основных единиц. Например, механическим системам нужны основные единицы только для длины размерностей, массы, и время.
Производные единицы в модульной системе должны иметь представление с точки зрения продуктов степеней основных единиц для той системы. В отличие от основных единиц, производные единицы не должны быть независимыми.
Производные единицы являются дополнительными и добавленными для удобства представления. Например, kg m/s2 сокращен ньютоном.
Примером модульной системы является система единицы СИ, которая имеет 7 основных единиц: килограмм, во-вторых, метр, ампер, кандела, молекулярная масса и кельвин. Существует 22 производных единицы, найденные путем вызова derivedUnits('SI').
baseUnits | derivedUnits | newUnitSystem | removeUnit | removeUnitSystem | symunit | unitConvert