京都工芸繊維大学工芸科学部 生命物質科学域高分子機能工学部門 高分子物性工学研究室

  • JP
  • EN
  • menu

    wave データの一部をコピーする(2)

    wave データの一部をコピーする(2)

    前回は、コピー元のデータ数 (wave0 : 10) が、コピー先のデータ数よりも (wave1 : 5)多かったので、単純な p 関数でコピーができた。

    5個のデータからなる wave1={5, 7, 9, 11, 13} を10個のデータからなるwave0 にコピーし、かつwave0の3番目からデータを代入するためにはどうしたらいいだろうか?今回の課題に取り組む前に、前回のようにwaveを作成しておいて欲しい。

    wave は、データ領域の限定が可能だ。例えば、wave0[3, 7] と指定した場合、これはwave0のデータの「3番目から7番目までのデータ」を意味する。

    一旦、wave0=0 によって、wave0をリセットしておこう。それから、

    wave0[3, 7]=wave1[p]

    と入力するといかがだろうか?
    実はこれは失敗例だ。3番目と4番目のデータは、11, 13とコピーできたらが、5番目以降は13がずっと書き込まれてしまう。これは wave1 が上記の命令で p 番目からデータをコピーしたから、すなわちこの場合、p=3 の11のデータからコピーをはじめたからだ。よって、正しいやり方は、

    wave0=0; wave0[3, 7]=wave1[p-3]

    となる。これによってp=3, 4, 5, 6, 7 におけるwave0 データは、wave1のp-3、すなわち、p=0, 1, 2, 3, 4 におけるデータがコピー対象となるわけだ。

    上の図のようになっていれば合格だ。