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
の入力引数を関数に渡すことができます。