FAQ-705 セルのブロックをコピーするには?

最終更新日:2015/06/16

LabTalkには、セルのブロックをプログラミングでコピーするいくつかの方法があります(copydata Xファンクションなど)。スピードと柔軟性において、range -v オプションスイッチを使用するのが良いでしょう。-vスイッチを使用して、単位値ブロックを範囲とし、-vを使用して定義した他の範囲に値を割り当てます。ブロックは同じ形状、要素の数である必要はありません(割り当てる前に目的のブロックが存在している必要があります)。

// 新しいブックにサンプルデータをインポート
fname$=system.path.program$ + "\Samples\Statistics\abrasion_raw.dat"; 
newbook;
impasc;
// 列A、Bの前列をブロックとする
range -v ra1 = 1[1]:2[end];
// 新しいシートを作成
newsheet;
// ra1 ブロックサイズを使用してブロックを1列として定義
range -v ra2 = 1[1:ra1.GetSize()];
// 最初のブロックの値を2番目のブロックに割り当て
ra2 = ra1;
col(1)[L]$ = Combined;

range -v の他の利点は、新しいセルのブロックにコピーする際、データでの数学操作を実行できることです。

range -v rs=[Book2]1!1:3;
range -v rt=[Book1]1!1:3;
 
rt=rs*10 //rsの要素に10を掛け、rtに出力

キーワード:コピー, copydata, 範囲, 値の設定, 数学

必要なOriginのバージョン:9.1SR0