Main Content

unitConvert

異なる測定単位への単位の変換

説明

unitConvert(expr,units) は式 expr のシンボリック単位を単位 units に変換します。ここで、units は複合単位または単位のベクトルです。

unitConvert(expr,unitSystem)expr を単位系 unitSystem に変換します。既定では、使用可能な単位系は SI、CGS および US です。newUnitSystem を使用して、カスタム単位系を定義することもできます。

unitConvert(expr,unitSystem,'Derived') は単位を unitSystem の派生単位に変換します。

___ = unitConvert(___,'Temperature',convMode) は、前の構文の入力引数を使用して、'absolute' または 'difference' と指定することで、温度はそれぞれ絶対温度または温度差で表されるかどうかを示します。引数 'Temperature' は温度の単位を変換するときのみ影響します。既定値では、温度は差分であると仮定しています。

すべて折りたたむ

5 cm をインチに変換します。計算はシンボリックであるため、unitConvert はシンボリックの非整数の結果を返します。

u = symunit;
length = unitConvert(5*u.cm,u.in)
length = 

250127in"inch - a physical unit of length."

変換できない場合、unitConvert は入力を返します。

separateUnits を使用して値を分離し、double を使用して変換することによって、length から浮動小数点数に変換します。または、double の代わりに vpa を使用して単位を維持できます。

double(separateUnits(length))
ans = 1.9685
vpa(length)
ans = 1.968503937007874015748031496063in"inch - a physical unit of length."

複雑なワークフローについては、単位変換と単位系を参照してください。

2 kg の物体を 5 m/s² 加速させるのに必要な力を計算します。結果の単位は自動的にはニュートンになりません。

m = 2*u.kg;
a = 5*u.m/u.s^2;
F = m*a
F = 

10kg"kilogram - a physical unit of mass."m"meter - a physical unit of length."s"second - a physical unit of time."2

unitConvert を使用して、F をニュートンに変換します。

F = unitConvert(F,u.N)
F = 10N"newton - a physical unit of force."

複合単位としてメートル毎秒を指定することによって、5 キロメートル毎時をメートル毎秒に変換します。

u = symunit;
unitConvert(5*u.km/u.hr,u.m/u.s)
ans = 

2518m"meter - a physical unit of length."s"second - a physical unit of time."

第 2 引数に単位のベクトルを指定して、変換に複数の単位を指定します。この構文では、必要な単位を得るためにすべての次元に対して単位を指定できます。

5 キロメートル毎時をセンチメートル毎分に変換します。

u = symunit;
f = 5*u.km/u.hr;
units = [u.cm u.min];
unitConvert(f,units)
ans = 

250003cm"centimeter - a physical unit of length."min"minute - a physical unit of time."

特定の単位に変換する代わりに、SI、CGS、または US などの単位系の単位に変換できます。

5 メートルを 'US' 単位系に変換します。unitConvert は結果をフィート単位で返します。

u = symunit;
unitConvert(5*u.m,'US')
ans = 

6250381ft"foot - a physical unit of length."

10 ニュートンを入力 'Derived' を使用して、CGS の派生単位に変換します。結果はダイン単位になります。入力 'Derived' なしで変換を繰り返すと、基本単位で結果が得られます。

F = 10*u.N;
cgsDerived = unitConvert(F,'CGS','Derived')
cgsDerived = 1000000dyn"dyne - a physical unit of force."
cgsBase = unitConvert(F,'CGS')
cgsBase = 

1000000cm"centimeter - a physical unit of length."g"gram - a physical unit of mass."s"second - a physical unit of time."2

既定値では、温度は差分で表されることを仮定しています。たとえば、5*u.Celsius は摂氏 5 度の差分温度を表します。この仮定により温度の値の算術演算、および温度スケール間での変換が可能になります。

絶対温度を表すにはケルビンを使用します。これにより絶対温度と温度の差分を区別する必要がなくなります。

摂氏 23 度を K に変換して、最初は温度の差分として扱っていた温度を絶対温度として扱います。

u = symunit;
T = 23*u.Celsius;
diffK = unitConvert(T,u.K)
diffK = 23K"kelvin - a physical unit of temperature."
absK = unitConvert(T,u.K,'Temperature','absolute')
absK = 

592320K"kelvin - a physical unit of temperature."

入力引数

すべて折りたたむ

入力。シンボリック数、シンボリック変数、シンボリック式、シンボリック関数、シンボリック ベクトル、シンボリック行列、またはシンボリック多次元配列として指定します。

入力の変換先としての単位。シンボリック単位またはシンボリック単位のベクトルとして指定します。

入力の変換先としての単位系。string または文字ベクトルとして指定します。既定では、使用可能な単位系は SI、CGS および US です。カスタム単位系を定義することもできます。単位変換と単位系を参照してください。

温度の変換モード。'difference' または 'absolute' として指定します。

制限

  • シンボリック単位を使用する場合、シンボリック単位の 0 倍の値は無次元 0 として返されます。シンボリック単位に 0 を乗算するときに単位を保持するには、cell 配列を使用してゼロ測定値を表します。

    たとえば、摂氏 0 度を cell 配列として定義し、関数 unitConvert を使用してそれを華氏に変換できます。

    u = symunit;
    tC = {0,u.Celsius};
    tF = unitConvert(tC,u.Fahrenheit,'Temperature','Absolute')
    tF =
    32*[Fahrenheit]

バージョン履歴

R2018b で導入