pythonの配列をmatlab engineに渡すときにエラーが出ます
이전 댓글 표시
matlab engineを用いてpython(python3.7)からmatlab(MATLAB2019b)の関数eig(一般固有値解析)を用いる際に
「MatlabExecutionError: データ型が無効です。入力行列は double または single でなければなりません。」というエラーが生じます。
コードは以下の通りです。
import matlab.engine
import math
eng=matlab.engine.start_matlab()
A = [[1/math.sqrt(2),0], [0, 1]]
B = [[0,1], [-1/math.sqrt(2) ,0]]
[V,D]=eng.eig(A,B)
この原因は行列A,Bにあり、matlabが計算できる形にする必要があると思い、以下のようにコードを改変しましたが、
「MatlabExecutionError: cell から double に変換できません。」というエラーが生じて、行列をdouble化できませんでした。
import matlab.engine
import math
eng=matlab.engine.start_matlab()
A = [[1/math.sqrt(2),0], [0, 1]]
B = [[0,1], [-1/math.sqrt(2) ,0]]
Ad=eng.double(A)
Bd=eng.double(B)
[V,D]=eng.eig(Ad,Bd)
これらのエラーを解消し、固有値解析をmatlab engineで行うにはどのようにすればよいでしょうか?
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Python からの MATLAB の呼び出し에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!