Main Content

MATLAB および Python の既定の数値型

既定により、MATLAB® ではすべての数値が倍精度浮動小数点数として格納されます一方で、Python® は一部の数値を既定で整数として格納します。この違いにより、倍精度数を受け付ける MATLAB 関数に入力引数として整数を渡す可能性があります。

これらの変数を MATLAB で割り当てるとします。

x = 4;
y = 4.0;

x および y は両方とも double データ型です。次は、同じ割り当てを Python で考えてみます。

x = 4
y = 4.0

x および y は、異なる数値データ型です。

print(type(x))
<type 'int'>
print(type(y))
<type 'float'>

ほとんとの MATLAB 関数は、double データ型の数値の入力引数をとります。入力引数として MATLAB 関数に渡す数値は、Python データ型 float であり、Python データ型 int ではないことを確認することをお勧めします。以下の場合、Python 変数を確実に浮動小数点数にできます。

  • リテラルを浮動小数点数にする。たとえば、4 の代わりに「4.0」と入力します。

  • float データ型に変換する。たとえば、x = float(4) は数値を float データ型にキャストします。

  • 数値またはシーケンスから matlab.double 配列を作成する。たとえば、x = matlab.double([1,2,3,4,5]) は、MATLAB の double データ型の配列を Python 整数の list から作成します。

整数を double データ型の入力引数を取る MATLAB 関数に渡すと、エンジンはエラーを発生します。例については、MatlabExecutionError: 未定義の関数を参照してください。

数値入力引数として整数を取る MATLAB 関数を呼び出すときは、Python データ型 int の入力引数を関数に渡すことができます。