ループなしで行列にMatchを使うすべて、
行列でmatchを使うことは可能ですか?私はドキュメントからこれが可能であることを見ませんが、誰かが以前にこれを試したことがありますか?基本的に、これは私がループなしで達成したいことの例です。JSLで行列演算をベクトル化するためのより多くのドキュメントとブログ投稿があったらいいのにと思います。
A = [0.1,0.2,0.3,0.4];
TestMat = [1,2,3,4,4,2,3,1,3,2,4,1];
TestMat1 = J(N Rows(TestMat),1,0);
for(i = 1, i <= N Rows(TestMat), i++,
TestMat1[i,1] = Match(TestMat[i],1,A[1],2,A[2],3,A[3],4,A[4]);
);
Show(TestMat1);
再:ループなしで行列にMatchを使う @ gzmorgan0 、
あなたが指摘した例を見てみると、そのセクションで文書化されている唯一のことは論理的な索引付けです。論理索引の概念は強力であり、コードのベクトル化を実現するための1つのアプローチです。
他のほとんどすべての言語/分析プラットフォームは、R、Matlab、Pythonなどです。クリーンでベクトル化されたコードを簡単に書くことを可能にするたくさんのドキュメントと組み込み関数があります。あなたはすでにこれを行う方法を知っているかもしれませんが、論理的な索引付けに関するこの1つの限定された例を提供して、私はすべての必要性のためにきれいで速いコードを書くために特に効率的だと思いません
グーグル「JMPのベクトル化コード」を試してみてください。 https://community.jmp.com/t5/JMP-Blog/JSL-Tip-Use-Matrices-Instead-of-Lists/ba-p/29773 ) 私が上記で言及した他の言語のどれかのために演習を繰り返して、あなたにどれだけの豊富な情報が利用可能になるかを見てください。私の要求を書き留めるのは簡単ですが、2、3の例に深く入り込み、いくつかの一般的な問題に取り組むより多くの文書があれば、それは私たちのコミュニティとそのユーザーに役立つことでしょう。
再:ループなしで行列にMatchを使うスクリプティングガイド、第7章「データ構造」セクション:リストと行列に例があります。具体的には、行列のサブセクション: 「添え字」 そして 「別のマトリックスまたはリストを使用したマトリックスまたはリストへの索引付け」 。また、行列のLag関数についてのVince Fallerの回答には、いくつかの例が含まれています。
リスト、行列、連想配列の節を読んでください。
再:ループなしで行列にMatchを使うありがとうジェフ。それはうまくいった。
JMPでベクトル化を検索するにつれて、例を使用したベクトル化操作に関するドキュメントの追加(要求/提案)を要求した場合、トピックに関するユーザーのガイドに役立つ十分なブログ/ドキュメントがないことに気付きます。
再:ループなしで行列にMatchを使う再:ループなしで行列にMatchを使うTestMatをAの添え字として使用し、それをTestMat1に割り当てます。
A = [0.1, 0.2, 0.3, 0.4];
TestMat = [1, 2, 3, 4, 4, 2, 3, 1, 3, 2, 4, 1];
TestMat1 = A[TestMat];
Show(TestMat1);
/*:
TestMat1 = [0.1, 0.2, 0.3, 0.4, 0.4, 0.2, 0.3, 0.1, 0.3, 0.2, 0.4, 0.1];