メインコンテンツ

separateUnits

式から単位を分離する

説明

[Data,Units] = separateUnits(expr) は、Units のシンボリック式 expr および Data の残り expr のシンボリック単位を返します。

Data = separateUnits(expr) は、expr からシンボリック単位を削除し、残りを返します。

すべて折りたたむ

separateUnits の 2 つの出力引数を用意して、式 10*t*u.m/u.s から単位を分離します。ここで u = symunit です。

u = symunit;
syms t
speed = 10*t*u.m/u.s;
[Data,Units] = separateUnits(speed)
Data = 10t
Units = 

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

1 つの出力引数が提供される場合は、単位が削除された式のみが返されます。

Data = separateUnits(speed)
Data = 10t

同じ単位に変換できる、互換性がある単位が入力に含まれている場合、separateUnits は変換を実行して分離した結果を返します。次元が同じ場合、単位には互換性があります (ただし、換算係数が 1 であるとは限りません)。

2*u.m + 30*u.cm + 12*u.in から単位を分離します。単位が異なっている場合でも、separateUnits はそれらを同じ単位に変換して分離した結果を返します。

u = symunit;
[Data,Units] = separateUnits(2*u.m + 30*u.cm + 12*u.in)
Data = 

1628625

Units = m"meter - a physical unit of length."

入力引数

すべて折りたたむ

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

expr とは異なる単位で数量を加算または減算する場合、それらの単位には互換性がなければなりません。次元が同じ場合、単位には互換性があります。例については、互換性がある単位の分離を参照してください。

出力引数

すべて折りたたむ

単位を除去した後の式。数値、ベクトル、行列、多次元配列、シンボリック数、シンボリック変数、シンボリック ベクトル、シンボリック行列、シンボリック方程式、シンボリック多次元配列、シンボリック関数、またはシンボリック式として返されます。

入力からの単位。シンボリック単位として返されます。

ヒント

  • 式に非互換の単位があると、separateUnits でエラーが発生します。単位が長さや時間といった同じ次元を持たない場合、その単位は非互換です。

    たとえば、以下のコードはエラーになります。

    u = symunit;
    [Data,Units] = separateUnits(2*u.m + 3*u.s)

    入力内の単位を返すには、代わりに findUnits を使用します。

    Units = findUnits(2*u.m + 3*u.s)
    Units = 
    [[m], [s]]

バージョン履歴

R2017a で導入

すべて展開する