質問: MATLABで取り込んだ2種類の音、それぞれ20個ずつ計40個のwavファイルにFFT処理をし、処理後の行列を結合、PCAで次元圧縮しました。 ここからHMMにトレーニングデータとして与えるための「圧縮した次元数 × 1サンプルあたりのフレーム数 × サンプル数」という3次元の配列を作成しなければなりません。 PCAで次元圧縮をした結果、7000(全サンプルの合計のフレーム数) x 5(5次元圧縮をしたため)という行列が出力されましたが3次元の配列にする方法がわかりません。 欠けている情報がありましたらご指摘いただけると幸いです。 よろしくお願いします。 追記: 1サンプルに対してFFT処理後に出力される行列は 171 × 512 (フレーム数×次数)です。 計40サンプルありますのでPCA処理後、正確には 6840 × 5 (全サンプルのフレーム数×圧縮した次元数)の行列が生成されます。 これを 5 × 171 × 40 (圧縮した次元数 × 1サンプルのフレーム数 × サンプルの合計)の形で3次元配列にしようとしています。
回答: a=ones(6840,5); % これをデータだとします。 b=zeros(7,171,40);%格納先の3次元配列です for k=1:5 b(k,:,:)=reshape(a(:,k),171,40); end