Unit Conversions and Unit Systems
Convert between units with Symbolic Math Toolbox™. This page shows conversions between units and between systems of units, such as SI, CGS, or a user-defined unit system.
Convert Units
Convert between units by using unitConvert
.
Convert 1.2 meters to centimeters.
u = symunit; len = 1.2*u.m; len = unitConvert(len,u.cm)
len = 120*[cm]
Convert len
to inches. The result is in exact symbolic form.
Separate units and convert to double.
len = unitConvert(len,u.in)
len = (6000/127)*[in]
[len units] = separateUnits(len); len = double(len)
len = 47.2441
Calculate the force needed to accelerate a mass of 5 kg at 2 m/s2.
m = 5*u.kg; a = 2*u.m/u.s^2; F = m*a
F = 10*(([kg]*[m])/[s]^2)
Convert the result to newton.
F = unitConvert(F,u.N)
F = 10*[N]
Tip
Use tab expansion to find names of units. Type u.
, press Tab, and continue typing.
Calculate the energy when force F
is applied for 3 meters. Convert
the result to joule.
d = 3*u.m; E = F*d
E = 30*[N]*[m]
E = unitConvert(E,u.J)
E = 30*[J]
Convert E
to kilowatt-hour.
E = unitConvert(E,u.kWh)
E = (1/120000)*[kWh]
Temperature Unit Conversion
Temperatures can represent either absolute temperatures or temperature
differences. By default, temperatures are assumed to be differences. Convert temperatures
assuming temperatures are absolute by specifying the 'Temperature'
input as 'absolute'
.
Convert 23
degrees Celsius to degrees Kelvin, first as a
temperature difference and then as an absolute temperature.
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]
Because the value 0
is dimensionless and 0
degrees cannot be represented, convert 0
degrees between temperature
units by using cell input.
Convert 0
degrees Celsius to degrees Fahrenheit.
tC = {0,u.Celsius}; tF = unitConvert(tC,u.Fahrenheit,'Temperature','Absolute')
tF = 32*[Fahrenheit]
Convert to SI, CGS, or US Unit Systems
Automatically convert to the correct units by converting to a unit system. Further, converting to the derived units of a unit system attempts to select convenient units. Available unit systems include SI, CGS, and US. For all unit systems, see Unit Systems List. In addition, you can define custom unit systems.
Calculate the force due to a 5 kg mass accelerating at 2
m/s2. The resulting units are hard to read. Convert them to
convenient units by specifying the SI
and Derived
options. unitConvert
automatically chooses the correct units of
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]
Convert F
to US units. By default, the converted units are base
units. For convenience, also convert into derived units by specifying the
Derived
option. The derived units are easier to read.
F = unitConvert(F,'US')
F = (1250000000000/17281869297)*(([ft]*[lbm])/[s]^2)
F = unitConvert(F,'US','Derived')
F = (20000000000000/8896443230521)*[lbf]
Convert F
to CGS derived units.
F = unitConvert(F,'CGS','Derived')
F = 1000000*[dyn]
Convert a specification in SI to US derived units. Specify the temperatures as absolute.
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]
If unitConvert
does not choose your preferred unit, then adjust
the result with further unitConvert
commands. Here, inches are more
convenient than feet. Convert the result to inches.
loadCell = unitConvert(loadCell,u.inch)
loadCell = (300000000/45359237)*[lbm] (250/127)*[in] (75/127)*[in] (50/127)*[in] 14*[Fahrenheit] 104*[Fahrenheit]
The exact symbolic values are hard to read. Separate the units and convert to
double
.
[loadCellDouble loadCellUnits] = separateUnits(loadCell); loadCellDouble = double(loadCellDouble)
loadCellDouble = 6.6139 1.9685 0.5906 0.3937 14.0000 104.0000
Alternatively, approximate the result to high precision by using
vpa
. The vpa
function also keeps the symbolic
units because it returns symbolic output.
loadCell = vpa(loadCell)
loadCell = 6.6138678655463274216892140403508*[lbm] 1.968503937007874015748031496063*[in] 0.5905511811023622047244094488189*[in] 0.3937007874015748031496062992126*[in] 14.0*[Fahrenheit] 104.0*[Fahrenheit]
Convert five acres (ac
), whose unit is a U.S. survey acre, to
metric area.
u = symunit; area = 5*u.ac_US; area = unitConvert(area,'SI')
area = (313632000000/15499969)*[m]^2
Define Custom Unit System from Existing System
Custom unit systems provide flexibility in converting units. You can easily define a custom unit system by modifying a default unit system. Alternatively, you can define the system directly. For definitions of unit system, base units, and derived units, see Unit System Definition.
In photonics, commonly used units are nanosecond (ns), electron volt (eV), and
nanometer (nm). Define a unit system with these units by modifying the SI unit system. Get
SI base and derived units by using baseUnits
and
derivedUnits
. Modify the units by using
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]]
Note
Do not define variables called baseUnits
and
derivedUnits
because the variables prevent access to the
baseUnits
and derivedUnits
functions.
Define the new unit system by using newUnitSystem
.
phSys = newUnitSystem('photonics',bunits,dunits)
phSys = "photonics"
Calculate the energy of a photon of frequency 1 GHz and convert the result to derived
units of the phSys
system. The result is in electron volts.
f = 1*u.GHz; E = u.h_c*f; E = unitConvert(E,phSys,'Derived')
E = (44173801/10681177560000)*[eV]
The exact symbolic result is hard to read. Separate the units and convert to double.
[E Eunits] = separateUnits(E); E = double(E)
E = 4.1357e-06
After completing calculations, remove the unit system.
removeUnitSystem(phSys)
Define Custom Unit System Directly
Define a custom unit system for atomic units (au).
Define these base units:
Dimension | Unit | Implementation |
---|---|---|
Mass | Electron rest mass | u.m_e |
Elementary charge | Electron charge | u.e |
Length | Bohr radius (a0) | u.Bohr |
Time | ħ/Eh | Define by using |
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]]
Define these derived units:
Dimension | Unit | Implementation |
---|---|---|
Angular momentum | Reduced Planck's constant | u.hbar |
Energy | Hartree | u.E_h |
Electric dipole moment | ea0 | Define by using |
Magnetic dipole moment | 2 Bohr magneton = eħ/2me | Define by using |
Electric potential | Eh/e | Define by using |
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]]
Define the unit system.
auSys = newUnitSystem('atomicUnits',bunits,dunits)
auSys = "atomicUnits"
Convert the properties of a proton to atomic units.
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]
After completing calculations, remove the unit system and the added units.
removeUnitSystem(auSys) removeUnit([u.t_au u.edm_au u.mdm_au u.ep_au])
Unit System Definition
A unit system is a collection of base units and derived units that follows these rules:
Base units must be independent in terms of the dimensions mass, time, length, electric current, luminous intensity, amount of substance, and temperature. Therefore, a unit system has up to 7 base units. As long as the independence is satisfied, any unit can be a base unit, including units such as newton or watt.
A unit system can have less than 7 base units. For example, mechanical systems need base units only for the dimensions length, mass, and time.
Derived units in a unit system must have a representation in terms of the products of powers of the base units for that system. Unlike base units, derived units do not have to be independent.
Derived units are optional and added for convenience of representation. For example, kg m/s2 is abbreviated by newton.
An example of a unit system is the SI unit system, which has 7 base units: kilogram, second, meter, ampere, candela, mol, and kelvin. There are 22 derived units found by calling
derivedUnits('SI')
.
See Also
baseUnits
| derivedUnits
| newUnitSystem
| removeUnit
| removeUnitSystem
| symunit
| unitConvert