DIMENSION - tagging values with units

Class for tagging values with units. Provides for transparent conversion, unit checking & combining.
1,3K descargas
Actualizado 7 feb 2005

Ver licencia

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.

Citar como

Nathan Thern (2024). DIMENSION - tagging values with units (https://www.mathworks.com/matlabcentral/fileexchange/6850-dimension-tagging-values-with-units), MATLAB Central File Exchange. Recuperado .

Compatibilidad con la versión de MATLAB
Se creó con R13SP1
Compatible con cualquier versión
Compatibilidad con las plataformas
Windows macOS Linux
Categorías
Más información sobre Physics en Help Center y MATLAB Answers.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Versión Publicado Notas de la versión
1.0.0.0

Left one file out of the zip