Documentation

unitConvert

Convert units to other units of measurement

Description

example

unitConvert(expr,units) converts symbolic units in the expression expr to the units units, where units can be a compound unit or a vector of units.

example

unitConvert(expr,unitSystem) converts expr to the unit system unitSystem. By default, the SI, CGS, and US unit systems are available. You can also define custom unit systems by using newUnitSystem.

unitConvert(expr,unitSystem,'Derived') converts units to derived units of unitSystem.

example

___ = unitConvert(___,'Temperature',convMode) indicates whether temperatures represent absolute temperatures or temperature differences by specifying 'absolute' or 'difference' respectively, using input arguments in the previous syntaxes. The 'Temperature' argument affects only conversion between units of temperature. By default, temperatures are assumed to be differences.

Examples

collapse all

Convert 5 cm to inches. Because the calculation is symbolic, unitConvert returns a symbolic fractional result.

u = symunit;
length = unitConvert(5*u.cm,u.in)
length =
(250/127)*[in]

If conversion is not possible, unitConvert returns the input.

Convert length to floating point by separating the value using separateUnits and converting using double. Alternatively, keep the units by using vpa instead of double.

double(separateUnits(length))
ans =
1.9685
vpa(length)
ans =
1.968503937007874015748031496063*[in]

For more complex workflows, see Unit Conversions and Unit Systems.

Calculate the force required to accelerate 2 kg by 5 m/s2. The result is not automatically in newtons.

m = 2*u.kg;
a = 5*u.m/u.s^2;
F = m*a
F =
10*(([kg]*[m])/[s]^2)

Convert F to newtons by using unitConvert.

F = unitConvert(F,u.N)
F =
10*[N]

Convert 5 km per hour to meters per second by specifying meters per second as a compound unit.

u = symunit;
unitConvert(5*u.km/u.hr,u.m/u.s)
ans =
(25/18)*([m]/[s])

Specify multiple units for conversion by specifying the second argument as a vector of units. This syntax lets you specify units for every dimension to get the desired units.

Convert 5 km per hour to centimeters per minute.

u = symunit;
f = 5*u.km/u.hr;
units = [u.cm u.min];
unitConvert(f,units)
ans =
(25000/3)*([cm]/[min])

Instead of converting to specific units, you can convert to units of a unit system, such as SI, CGS, or US.

Convert 5 meters to the 'US' unit system. unitConvert returns the result in feet.

u = symunit;
unitConvert(5*u.m,'US')
ans =
(6250/381)*[ft]

Convert 10 newtons to derived units in CGS by using the input 'Derived'. The result is in dynes. Repeat the conversion without the input 'Derived' to get a result in base units.

F = 10*u.N;
cgsDerived = unitConvert(F,'CGS','Derived')
cgsDerived =
1000000*[dyn]
cgsBase = unitConvert(F,'CGS')
cgsBase =
1000000*(([cm]*[g])/[s]^2)

By default, temperatures are assumed to represent temperature differences. For example, 5*u.Celsius represents a temperature difference of 5 degrees Celsius. This assumption allows arithmetical operations on temperature values and conversion between temperature scales.

To represent absolute temperatures, use degrees Kelvin so that you do not have to distinguish an absolute temperature from a temperature difference.

Convert 23 degrees Celsius to Kelvin, treating the temperature first as a temperature difference and then as an absolute temperature.

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]

Input Arguments

collapse all

Input, specified as a symbolic number, variable, expression, function, or array.

Units to convert input to, specified as a symbolic unit or an array of symbolic units.

Unit system to convert input to, specified as a string or character vector. By default, the SI, CGS, and US unit systems are available. You can also define custom unit systems. See Unit Conversions and Unit Systems.

Temperature conversion mode, specified as 'difference' or 'absolute'.