pythonの配列をmatlab engineに渡すときにエラーが出ます
Mostra commenti meno recenti
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で行うにはどのようにすればよいでしょうか?
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Python からの MATLAB の呼び出し in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!