• 締切済み

matlabのfor文でのデータ取り込み

matlabを使って.xlsxファイルの要素を抜き出して配列にしたいと思っています。 例えば、 [S1, header]=xlsread('sample.xlsx','A1001:A1100') ここでS1にA3000からA3100まで取り込めますが、これをS2にはA1101からA1200と同様に S3,S4とfor文で取り込み最終的にS10まで行いたいです。そして、 P=[S10; S9; ・・・・S1] として一つの行列にしたいのですが、for文を使って簡単にできないでしょうか? 取り込みと、一つの行列にする部分の二つをfor文で書き表したいです。 よろしくお願いします。

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

>ここでS1にA3000からA3100まで取り込めますが、 S1にA1001からA1100の間違い? P = zeros(1000,1); for k=1:10  [S, header]=xlsread('sample.xlsx',sprintf('A%d:%d', k*100+9001, k*100+1000));  P(1001-k*100:1100-k*100) = S; end ってことですかね。

dpeiki
質問者

補足

さっそくの回答ありがとうございます。 >ここでS1にA3000からA3100まで取り込めますが、 S1にA1001からA1100の間違い? はい、間違いました。すいませんでした。  [S, header]=xlsread('sample.xlsx',sprintf('A%d:%d', k*100+9001, k*100+1000)); ここの'A%d:%d'は→'A%d:A%d'のAが抜けてますか? 後、k*100+9001の部分は901ではないでしょうか? 最終的にプログラムを直した結果、SにはA1901:A2000までのデータしか取り込んでいませんでした。 A1001:A1100、A1101:A1200などの100個ずつのデータ10個を、10*100の行列として取り込むには どうしたら良いでしょうか?

関連するQ&A