私は100x200の入力と、gridsearchを実行してPythonで分類器を作成するために使用している1x100のターゲット行列を持っています。しかし、ターゲットデータのトレーニングセットが配列ではないというエラーが発生します。私は試しました:Matlab行列をPython配列に変換するにはどうすればいいですか
target=np.asarray(matTarget)
ここで、matTargetは、scipy.io.loadmatを使用してMatlabからインポートされたターゲットです。私も空白のサイズを取得target.size私がしようとすると
私の正確なエラーは
len() of unsized object
です。
私は配列変換を行わないと、私は、私はまだMatlabの中に元の行列があり、また、代わりにasarrayのnp.array使用して試してみました
Expected array-like (array or non string sequence) got {'_header_': b'Matlab matfile ... Array([[1],[1]...)}
を取得します。
私はprint(matTarget.keys())
を行う場合、私は( 'ヘッダ `' バージョン '' グローバル」、 'y_train'])
y_trainはマットファイル自体
の名前で取得します
だから、あなたのラインでは、行列は「行列の名前」と同じですか?ですから、私がMatlabからインポートした行列はscipy.io.loadmatを使ってmatTargetと呼ばれています。私が作成しようとしている行列はちょうど目標です。だから私はあなたの行に応じてコードを書く場合、私は 'target = matTarget [' target ']'を得るが、ターゲットがそれ自身のものとして定義されている場合、どのように機能するのだろうか? – a13a22
@aksharagarwalいいえ、 '' name of matrix''は文字列リテラルで、Matlabファイルの実際の名前で置き換えてください。 'matrix'は' matTarget [...] 'が返す行列への参照を格納する変数です。 'matTarget'は、行列の名前をキーとして、行列自体を値として含む辞書です。 'print(matTarget.keys())'の出力を投稿できますか? –
その出力を質問に追加しました。だから私は 'target2 = matTarget(' y_train ')を実行し、np.asarray(target2)としてターゲットを定義する必要がありますか?そうすることで、辞書が呼び出せないというエラーが発生します。 – a13a22