1行614400列
とありますが、数字が縦に並んでいるところをみると
614400行1列
の間違いではないでしょうか?
どちらでもいいのですが、データが1行614400列で与えられているとして話をすすめます。
すでに回答があがっていますが、よりMATLABにふさわしい書き方を紹介します。
データを d に格納します。
しかし、プログラムが意図したとおりに動作するかを簡単にチェックしたいので、
まずは
d = 1:614400;
という自然数が並んだデータを用意しましょう。上記の回答ではd=rand(1,614400);としていますが、これだと結果が正しいかチェックしずらいのでおすすめしません。
(本当は d= 1:10;くらいに設定してテストするのがちょうどよいのですが。。。)
さて、dの偶数番目に256をかけ,dの奇数番目と和をとるには次のようにします。
dd = 256*d(2:2:end) + d(1:2:end);
なぜこれでよいかはマニュアルを読んで自習してください。
d(1:2:end-1)では?と思われるかもしれませんが、d(1:2:end)で十分です。
ちなみにMATLABはd(1)が最初の要素なので上の回答では奇数番目を256倍することになってしまいます。
これを480x640にするにはreshapeで整形します。
ddd = reshape(dd,480,640);
>480x680
とありますが、サイズが合いません。おそらく480 x 640の間違いでしょう。
もし本当に680にしたいのであればデータ長さが足りないので0をうめることにします。
その場合は
ddd = zeros(480,680);
ddd(1:length(dd))=dd;
でOKです。
C:row-major order
MATLAB:column-major order
にも注意してください。
参考
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/21 03:56