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