2

少し問題があります。私はかなり長い間検索しましたが、答えが見つかりませんでした (助けてください、私は初心者です)。Mathematica 9 で物理計算用の独自のノートブックを作成したいと考えています。ノートブックは使いやすく、概要をすばやく把握できる必要があります (毎回数量を使用したくない理由)。教科書のように数式を表示したい。私の問題は、たとえば ElectronMass に必要な添え字です。これらの値を保護したいので、シンボルである必要があります。しかし、うまくいきません。m を変更して、Electronmass の別の値を取得できます。ここに私のノートがあります:

Needs["Notation`"];
Symbolize[ParsedBoxWrapper[SubscriptBox["_", "_"]]]

Subscript[m, e] = Quantity["ElectronMass"];
Subscript[m, p] = Quantity["ProtonMass"];
Subscript[m, n] = Quantity["NeutronMass"];
Protect[Subscript[m, el], Subscript[m, p], Subscript[m, n]];

ここまでは良かったのに…でも、こうなってしまう…

In[19]:= m = 5

Out[19]= 5

In[20]:= Subscript[m, e ]

Out[20]= Subscript[5, e]

代わりに私は欲しい

In[20]:= Subscript[m, e ]

Out[20]= Subscript[m, e]

「m」または「e」に関係するものとは別に、Subscript[m, e] を処理するだけです。助けてくれてありがとう

4

3 に答える 3

1

Artur の方法に加えて、これらのシンボルの評価を防止するものをHoldAll設定できます。これは のすべての使用にSubscript影響するため、軽々しく行うべきではありませんが、この動作を一般的にしたい場合は、まさにあなたが望むものかもしれません。Subscript

SetAttributes[Subscript, HoldAll]

m = 5; e = 3;

Subscript[m, e]
(* Out= *) Quantity["ElectronMass"]

専用の StackExchange サイト:
ここに画像の説明を入力

于 2013-08-05T21:35:13.893 に答える
0

これまでに得た優れたHold (息)Protect (貴重な変数) の回答に加えて、少し立ち止まって考えてみることをお勧めします。

これはMMAの制限/癖ですか、それともあなたの紙/ノートのロジック/スタイルの制限ですか?

結局のところ、特定の質量を示す下付き文字を使用して m を定義するために、かなりの時間を費やしています。それでは、一体なぜ、下付き文字なしで m だけの量 (おそらく定数) を定義したいのでしょうか?

塊ですか?次に、その質量の種類を示す添え字を付けます。

ミサじゃないの?それなら別の呼び方をしてください。より長い (よりわかりやすい) 変数名を使用するか、本当に創造力を使い果たした場合はmmを使用してください。

一般に、読者を、大きく異なる意味を持つ類似の記号で混同しないでください。

また、私はタイプしません

Symbolize[ParsedBoxWrapper[SubscriptBox["_", "_"]]]

これは一般的すぎるからです。私はタイプします

Symbolize[ParsedBoxWrapper[SubscriptBox["m", "_"]]]

これは、きれいな添え字を持つ物理オブジェクトの種類を制限します。もちろん、後でいつでも追加できます

Symbolize[ParsedBoxWrapper[SubscriptBox["q", "_"]]]

他の添字付きの量 (料金など) を記述する必要がある場合は、

于 2013-08-10T09:58:12.440 に答える