Main Content

symunit

説明

u = symunit は単位のコレクションを返します。その後、u.unit を使用して単位を指定します。たとえば、3 メートルを 3*u.m と指定します。u.meteru.metre のように、単位の一般的な別名がサポートされています。複数形はサポートされていません。使用可能な測定単位の一覧の詳細については、単位と単位系の一覧を参照してください。

すべて折りたたむ

単位を指定する前に、symunit を使用して単位を読み込みます。その後、ドット表記で単位を指定します。

長さに 3 を指定します。エイリアス u.meter または u.metre も使用できます。

u = symunit;
length = 3*u.m
length = 3m"meter - a physical unit of length."

加速度に重力加速度 9.81 メートル毎平方秒を指定します。単位はシンボリック式なので、数値の入力は厳密なシンボリック値に変換されます。ここで、9.81981/100 に変換されます。

g = 9.81*u.m/u.s^2
g = 

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

シンボリック演算と数値演算の違いの詳細については、数値演算またはシンボリック演算の選択を参照してください。

単位について標準的な演算を行うと、シンボリック式と同じように振る舞います。数値演算を行うには、値を単位から分離し、任意のシンボリック パラメーターを代入し、結果を double に変換します。

5 キロメートルを 2 時間で移動するのに必要な速度を求めます。

u = symunit;
d = 5*u.km;
t = 2*u.hr;
s = d/t
s = 

52km"kilometer - a physical unit of length."h"hour - a physical unit of time."

5/2 はシンボリックです。シンボリック値を受け入れない MATLAB® 関数については、double の出力が望ましい (または double の出力が要求される) 場合があります。separateUnits を使用した後に double を使用して数値を切り離すことで、double に変換します。

[sNum,sUnits] = separateUnits(s)
sNum = 

52

sUnits = 

km"kilometer - a physical unit of length."h"hour - a physical unit of time."

sNum = double(sNum)
sNum = 2.5000

単位ワークフロー全体については、測定単位のチュートリアルを参照してください。

unitConvert を使用して単位を書き換えることで、好きな単位を使用します。特定の単位を指定する代わりに、SI 単位系に準ずるように指定することもできます。

2 kg の物体を 5 m/s² 加速させるのに必要な力を計算します。式の単位は自動的にはニュートンに書き換えられません。

u = symunit;
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 = unitConvert(F,u.N)
F = 10N"newton - a physical unit of force."

5 cm をインチに変換します。

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

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

length を SI 単位に変換します。結果はメートルで返されます。

length = unitConvert(length,'SI')
length = 

120m"meter - a physical unit of length."

simplify を使用して、等しい次元の単位を含む式を単純化します。simplify を呼び出すまでは、単位の単純化や整合性チェックは自動的には行われません。

u = symunit;
expr = 300*u.cm + 40*u.inch + 2*u.m
expr = 300cm"centimeter - a physical unit of length."+40in"inch - a physical unit of length."+2m"meter - a physical unit of length."
expr = simplify(expr)
expr = 

752125m"meter - a physical unit of length."

simplify は返す単位を自動的に選択します。特定の単位に変換するには、unitConvert を使用します。

expr = unitConvert(expr,u.ft)
expr = 

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

既定値では、温度は差分で表されることを仮定しています。たとえば、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."

制限

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

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

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

ヒント

  • タブの拡張を使用して単位の名前を探すことができます。u. と入力し、Tab キーを押して、入力を続けてください。

  • 1 は無次元単位であることを表します。したがって、isUnit(sym(1)) は logical 1 (true) を返します。

  • デシベルのような特定の非線形単位は、数値演算が不可能なため実装されません。

  • 単位の指定にドット表記を使用する代わりに、symunit(unit) で string 入力を使用することもできます。たとえば、symunit("m") は単位をメートルに指定します。

バージョン履歴

R2017a で導入

すべて展開する