途中経過です。
import matlab.engine
import math
eng=matlab.engine.start_matlab()
A = matlab.double([[1/math.sqrt(2),0], [0, 1]])
B = matlab.double([[0,1], [-1/math.sqrt(2) ,0]])
[V,D]=eng.eig(A,B)
このようにmatlab.doubleを用いれば解析は回りましたが、次は答えのV,Dの値がおかしいです。
MATLAB本体で行うと、
A = [1/sqrt(2) 0; 0 1];
B = [0 1; -1/sqrt(2) 0];
[V,D]=eig(A,B)
V =
1.0000 + 0.0000i 1.0000 + 0.0000i
0.0000 - 0.7071i 0.0000 + 0.7071i
D =
0.0000 + 1.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 1.0000i
とV及びDは行列表記となりますが、pythonでmatlab engineを利用して同様に解くとV=1j, D=-1jとなりスカラーで返されます。これはmatlab engineのエラーでしょうか?