複素数を計算する.
c=complex(a) c=complex(a,b)
1行1列またはn行m列の倍精度実数行列, 実部.
a が虚部を有する場合,
エラーが発生します.
1行1列またはn行m列の倍精度実数行列, 虚部 (デフォルト b=0).
b が虚部を有する場合,
エラーが発生します.
n行m列の倍精度複素行列, 複素数.
c=complex(a) は, aを実部,
0 を虚部とする複素数を作成します.
c=complex(a,b) は実部a ,
虚部bの複素数を作成します.
この関数は,
特に複素数演算が%inf または%nan
のような特定の浮動小数点数と競合する場合に,
a+%i*bのような式の代替手段となります.
以下の例では,実部と虚部から複素数を生成します.
a のみが指定された場合, 虚部は0に設定されます.
a がスカラーで b が
行列の場合, 結果 c は,
bと同じ大きさとなります.
同様に, b がスカラーで a
が行列の場合, 結果 c は
aと同じ大きさになります.
a と b が
異なる大きさの行列の場合,以下のセッションのような
エラーが発生します.
-->complex(ones(2,3),ones(4,5)) !--error 10000 complex: Incompatible input arguments #1 and #2: Same sizes expected. at line 33 of function complex called by : complex(ones(2,3),ones(4,5))
complex 関数の目的は,NaNや無限大のような
IEEE 浮動小数点数を管理することです.
以下の例では,複素数演算を使用する場合,
実部と虚部が複合体となる複素数を作成するのは
容易ではないことを示します.
これは,%i と %infの積が
(0+%i) * (%inf+%i*0)と評価されるためです.
この結果は,中間式0*%inf,つまり,
%nanとなります.
-->%inf+%i*%inf
ans =
Nan + Inf
この問題の解決策は complex関数を使用することです.
-->complex(%inf,%inf)
ans =
Inf + Inf