DIMENSION - tagging values with units

版本 1.0.0.0 (32.6 KB) 作者: Nathan Thern
Class for tagging values with units. Provides for transparent conversion, unit checking & combining.
1.3K 次下载
更新时间 2005/2/7

查看许可证

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.

引用格式

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

MATLAB 版本兼容性
创建方式 R13SP1
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Physics 的更多信息

Community Treasure Hunt

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

Start Hunting!
版本 已发布 发行说明
1.0.0.0

Left one file out of the zip