アプリ版:「スタンプのみでお礼する」機能のリリースについて

例えば、手打ちで

{a[1],a[2],a[3]}={1,2,3} ------(1)

とした場合はa[1],a[2],a[3]それぞれに1,2,3が割り当てられますが、これをTableコマンドを使って

Table[a[i],{i,3}]={1,2,3}

としてもa[1],a[2],a[3]には何も割り当てられません。Tableコマンドを使って、(1)と同じように配列内の変数を一括に定義できる操作がわからなくて困っています。mathematicaに詳しい方ご存知でしたらぜひ教えてください!
ちなみに私はmathematicaのver6を使っています。

A 回答 (1件)

"="(Set)はHoldFirst属性がありますので,第1引数("="の左辺)は評価されません.なので,先にEvaluateを使って左辺を評価すればできます.



Evaluate[Table[a[i],{i,3}]]={1,2,3}

このときa[1],a[2],a[3]が既に定義されているとエラーになりますので,そのときはClear[a]などとしてから実行する必要があります.


とはいっても,Mathematicaで配列を扱う方法としては,リストを使う方法が一般的です.

a = {1,2,3}

として定義しておいて,各要素にはa[[1]],a[[2]],a[[3]]としてアクセスします.リストにしておけばMapやApply,Selectなどの豊富なMathematica標準の関数が使えます.
もちろん添数付きオブジェクト(a[1],a[2],...)として定義する方法には,添数が飛び飛びの場合やシンボルを引数にするときなどに便利ですが.
    • good
    • 0
この回答へのお礼

回答ありがとうございます。無事解決することができました!
今まですごく面倒な方法で配列の変数に値を定義していたので、
これでずいぶん改善させることができます。
ほんとに助かりました!

お礼日時:2009/02/22 21:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!