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.
Cita come
Nathan Thern (2024). DIMENSION - tagging values with units (https://www.mathworks.com/matlabcentral/fileexchange/6850-dimension-tagging-values-with-units), MATLAB Central File Exchange. Recuperato .
Compatibilità della release di MATLAB
Compatibilità della piattaforma
Windows macOS LinuxTag
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Scopri Live Editor
Crea script con codice, output e testo formattato in un unico documento eseguibile.
@dimension/
@dimension/private/
Versione | Pubblicato | Note della release | |
---|---|---|---|
1.0.0.0 | Left one file out of the zip |