mathematicaでTable関数で作成したリスト {{x1, y1, z1, f(x1,y1,z1)}, {x2, y2, z2, f(x2,y2,z2)}, ... , {xn, yn, zn, f(xn,yn,zn)}} 中のx1~xnまでの各成分とy1~ynまで(、z1~znまで、 f(x1,y1,z1)~f(xn, yn, zn)までの各成分)をそれぞれ配列に格納するにはどうすればいいのでしょうか?(C言語のようにループ文で配列に格納することはできないのでしょうか?)
もしくは、行列中で列の成分を取り出すことはできますか?

どなたか解法を示していただければ幸いです。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

a= {{x1, y1, z1, f(x1,y1,z1)}, {x2, y2, z2, f(x2,y2,z2)}}



Do[ Print[ a[[i]], {i,1,2} ]
Do[ Do [ Print[ a[[i]][[j]], {j,1,2}], {i,1,2}]

b[2]
Do[ b[[i]]=a[[i]], {i,1,2} ]
Do[ Print[ b[[i]], {i,1,2} ]

2重の大かっこに挟んだ添え字をつけることでリスト(配列)の要素を取り出せます。

この回答への補足

回答ありがとうございます。ただ、これを実行しても"パート指定iは整数でも整数のリストでもありません."と出ます。
実行文:
a= {{x1, y1)}, {x2, y2)}}
Do [ Print[ a[[i]][[j]], {i,1,2},{j,1,2}]]]です。

補足日時:2011/04/20 16:56
    • good
    • 0
この回答へのお礼

最初に御回答いただきありがとうございました。参考にはなっております。

お礼日時:2011/04/20 17:15

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q(mathematica)Tableで配列された変数の一括定義

例えば、手打ちで

{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ベストアンサー

"="(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],...)として定義する方法には,添数が飛び飛びの場合やシンボルを引数にするときなどに便利ですが.


人気Q&Aランキング

おすすめ情報