問題タブ [wolfram-mathematica]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2257 参照

c# - Mathematica 構文のパーサー?

Mathematica 式を解析できる C# から使用できる組み込みのパーサーはありますか?

カーネル自体を使用して式を解析し、.NET/Link を使用してツリー構造を取得できることを知っています...しかし、カーネルに依存しないものを探しています。

0 投票する
3 に答える
3402 参照

function - Mathematica のオプションの名前付き引数

オプションの名前付き引数を持つ関数を定義するための最良/標準的な方法は何ですか? 具体的にするために、foo名前付き引数ab、およびを持つ関数を作成しましょうc。デフォルトはそれぞれ 1、2、および 3 です。比較のために、foo位置引数付きのバージョンを次に示します。

の名前付き引数バージョンの入力と出力の例を次に示しますfoo

もちろん、名前付き引数の前に位置引数を指定することも簡単です。

0 投票する
2 に答える
5128 参照

wolfram-mathematica - Mathematica:FindInstanceの結果から「x ->」を取り除く

次の結果があるとします。

「b->」を取り除き、b の回答の配列を取得するにはどうすればよいですか? 私はそこに途中まで行くことができます:

しかし、どうすれば取得できますか:

ありがとう

0 投票する
1 に答える
2310 参照

macros - Mathematica:未評価vs延期vs保留vs HoldForm vsHoldAllCompletevsなど

私は、何らかの方法で評価を防ぐことを目的としたすべての組み込みのMathematica関数に戸惑っています:、、、Unevaluatedおよびフォームの半ダース以上。Mathematicaのドキュメントでは、どちらかを選択する理由を説明せずに、各関数を個別に説明しています。誰かがこれらすべての機能の首尾一貫した説明を提供できますか?全体が複雑な混乱のように思えます。すべてをLispマクロに関連付けることから始めるのが良いかもしれません。DeferHoldHold*

Mathematica言語のほとんどは驚くほどうまく設計されていますが、Wolframはこの面で本当に自分自身を隅に追いやったようです。または、何かが足りない可能性があります。

0 投票する
1 に答える
1172 参照

image-processing - Mathematica プログラミング グラフ プロット

40,000 データ ポイントのファイルがあります。Matlab では、plot コマンドを使用してプロットを描画できます。

Mathematica でそれを行うにはどうすればよいですか?私は試した:

しかし、うまくいきません。

0 投票する
3 に答える
284 参照

parsing - foo[.2] と foo[.20] を区別できる Mathematica 関数 foo

数値を受け取り、それを指定されたとおりに文字列として返す関数が必要だとします。以下は機能しません。

foo[.2]との出力foo[.20]は同じです。

これを行う理由は、区切り記号としてドットを使用した日付を理解できる関数が必要だからですf[2009.10.20]。これは Mathematica の奇妙な乱用であることは理解していますが、私はドメイン固有言語を作成しており、eval (ToExpression) を実行するだけでそのパーサーとして Mathematica を使用したいと考えています。2009.01.02 のように 2 桁の日と月に頼ることができれば、実際にこれを機能させることができますが、2009.1.2 も許可したいので、上記の質問に要約されます。

唯一の答えは、文字列として渡してから解析することだと思いますが、おそらく私にはわからないトリックがあります。これはこの質問に関連していることに注意してください: Mathematica: Unevaluated vs Defer vs Hold vs HoldForm vs HoldAllComplete vs etc etc

0 投票する
8 に答える
6786 参照

list - Mathematica で重複を表示

Mathematica にはリストがあります:

重複したリストを作成するにはどうすればよいですか? お気に入り:

Lists as Setsを見てきましたが、リストに Except[] のようなものがある場合は、次のことができます。

(もちろん、x に 2 つ以上の重複がある場合、たとえば {1, 2,2,2 ,3,4,4} の場合、出力は {2,2,4} になりますが、追加の Union[]これで解決します。)

しかし、そのようなことはありませんでした(すべての機能をよく理解していれば)。

それで、それを行う方法は?

0 投票する
1 に答える
12958 参照

memory-management - Mathematica のメモリ不足

次のプログラムを実行しようとしています。このプログラムは、係数が +1 または -1 のみの d までの次数の多項式の根を計算し、それをファイルに保存します。

ここで、f[z,i] は、2 進数でカウントするプラスまたはマイナス符号を持つ z の多項式を返します。d=2 としましょう。

f[z,1] = -z 2 - z - 1
f[z,2] = -z 2 - z + 1
f[z,3] = -z 2 + z - 1
f[z,4] = - z 2 + z + 1

これを読んでもあまり楽しくないかもしれませんが、とにかく比較的短いです。関連する部分に切り詰めようとしましたが、ここでは何が問題なのかまったくわかりません。f[z,i] のすべてのルートを計算し、それらを四捨五入して n グリッドの点に対応させ、そのデータをさまざまなファイルに保存します。

何らかの理由で、Mathematica のメモリ使用量が徐々に増加し、すべてのメモリ (このマシンでは 6 GB) がいっぱいになります。その後、計算は非常にゆっくりと続行されます。どうしてこれなの?

ここで何がメモリを使い果たしているのかわかりません - 私の唯一の推測はファイルのストリームがメモリを使い果たしたということでしたが、そうではありません: 2GB のファイルにデータを追加しようとしましたが、そのための目立ったメモリ使用量はありませんでした. ここで Mathematica が大量のメモリを使用する理由はまったくないようです.

d の値が小さい場合 (たとえば 15)、動作は次のようになります。4 つのカーネルが実行されています。すべてが ParallelDo ループを実行する (それぞれが一度に j の値を実行する) と、すべてがそのループを 1 回通過し終わるまで、メモリ使用量が増加します。次にそのループを通過するとき、メモリ使用量はまったく増加しません。計算は最終的に終了し、すべて問題ありません。

また、非常に重要なことに、計算が停止すると、メモリ使用量は元に戻りません。別の計算を開始すると、次のことが起こります。

- メモリ使用量がまだ増加しているときに前回の計算が停止した場合は、増加し続けます (基本的に計算で同じポイントに到達するには、再び増加し始めるまでに時間がかかる場合があります)。

- メモリ使用量が増加していないときに前回の計算が停止した場合、それ以上増加しません。

編集:この問題は、 f の相対的な複雑さに起因しているようです。より簡単な多項式に変更すると、問題が解決するようです。問題は、Mathematica が i の特定の値に対して f[z,i] を記憶しているが、f[z,i] := を設定していることだと思いました。f[z,i] のルートを計算した直後に、代入がそもそも存在しなかったと不平を言い、メモリはまだ使用されています。

f がメモリを消費すると想像できる唯一の残りのものであるため、実際には非常に不可解ですが、内側の Do ループで f を定義し、根が計算されるたびにそれをクリアしても問題は解決しません。

0 投票する
4 に答える
458 参照

wolfram-mathematica - Mathematica 7 のリスト間の複数代入

2 つのリストa = {a1, a2, a3}とがあり、 とのみを参照するb = {b1, b2, b3}make への割り当てステートメントを書きたいとします。a1=b1,a2=b2,a3=b3ab

しかし、それは作るだけa={b1,b2,b3}です。:=代わりに (SetDelayed)を使用=しても機能しません。
解決策はありますか?ありがとう。

0 投票する
1 に答える
203 参照

wolfram-mathematica - Mathematicaで以前に定義されたメッセージを見つける

Mathematicaはデフォルトで、間違った数の引数で関数が呼び出されたり、ファイルが見つからなかったりするなど、一般的なエラーを通知するための多くの有用なメッセージを定義します。Check一般に、私は可能な限り既存の定義済みメッセージを使用することを好みます。これにより、、、QuietおよびOn/などのメカニズムを介してメッセージを処理しやすくなりますOff。ただし、現在定義されているメッセージを見つけるためのすべての試みは失敗しました。のような明白なアプローチ

まったく動作しません。

私が見逃しているトリックはありますか?

前もって感謝します。