DIMENSION - tagging values with units
Joe engineer's script works in radians and meters. The lab data files are in degrees and inches and the drawings are in mm. Joe tags everything with dimensions and never worries again about conversions. He even discovers a bug where a value he thought represented area really represents distance.
Whirlwind Tour:
>> side = dimension(500,'m')
side = 500 m
>> height = dimension(2.1,'km');
>> height + side
ans = 2.6 km
>> side + height
ans = 2600 m
>> height > dimension(1,'mi')
ans = 1
>> convert(side*height,'acre')
ans = 259.461 acre
>> msquared = dimension(1,'m',2)
msquared = 1 m^2
>> convert(side*height,msquared)
ans = 1050000 m^2
>> speed = dimension(60,'mi','hr',-1);
>> value(speed)
ans = 60
Or
>> speed.value
ans = 60
>> convert(speed,'kph')
ans = 96.5606 kph
>> ubase(speed)
ans = 26.8224 m s^-1
>> ubase(dimension(1,'btu'))
ans = 1055.06 kg m^2 s^-2
>> convert(height,'kg')
??? Error ==> units are incompatable
>> height + speed
??? Error ==> units are incompatable
>> speed * dimension(1.5,'hr')
ans = 90 mi
>> thickness = dimension([1,2;3,4],'in');
thickness = 1 2
3 4 in
>> thickness(2,1)
ans = 3 in
>> [ thickness [ side/1000; height/1000 ] ]
ans = 1 2 19.685
3 4 82.677 in
>> thickness'
ans = 1 3
2 4 in
>> angle = dimension(30,'deg');
>> tan(angle)
ans = 0.57735
Any value can be used as an argument to DIMENSION:
>> i_time = dimension(1*i,'s');
Users can define their own units based on previously defined units or redefine existing units:
>> frlng = dimension(220,'yd');
>> add_unit(frlng,'furlong');
>> convert(height,'furlong')
ans = 10.439 furlong
>> add_base(dimension, 'beaut');
>> add_unit(dimension(.75,'beaut','joule',-1),'tnt');
>> ubase(dimension(700,'tnt'))
ans = 525 beaut s^2 kg^-1 m^-2
Some defined units:
s, sec, min, hr, dy, wk, yr, mon, millenium
m, cm, mm, a, km, ft, in, mil, yd, mi, nm, ly, au, parsec
r, radian, deg, arcmin, arcsec, grad, cycle, rev
kg, gm, mg, tonne, lbm, oz, slug, ton, amu
k, kelvin, rankine
amp, ma
mole, mol
bit, byte, kB, MB, GB, TB
cd, candle
dollar, $, cent
cc, l, ml, gal, qt, floz
kph, knot, mph, c
Hz, KHz, MHz, GHz, rpm
nt, dyne, lb, lbf
joule, erg, cal, btu, ev, mev, kwh
sr, coulomb, ftlb, watt, gray, farad, ohm, mho, v, henry, tesla, gauss, wb
This is beta software and still in the bug-killing stage. Everything shown above works correctly, though.
Cite As
Nathan Thern (2024). DIMENSION - tagging values with units (https://www.mathworks.com/matlabcentral/fileexchange/6850-dimension-tagging-values-with-units), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
@dimension/
@dimension/private/
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.0 | Left one file out of the zip |