で固定された最初と最後の要素を持つ行列の行私は、次の(任意のcols /行)のような行列を持つ:Matlabの:検索ベクトル
1 0 0 0 0
1 2 0 0 0
1 2 3 0 0
1 2 3 4 0
1 2 3 4 5
1 2 5 0 0
1 2 5 3 0
1 2 5 3 4
1 4 0 0 0
1 4 2 0 0
1 4 2 3 0
1 4 2 5 0
1 4 2 5 3
1 4 5 0 0
1 4 5 3 0
2 0 0 0 0
2 3 0 0 0
2 3 4 0 0
2 3 4 5 0
2 5 0 0 0
2 5 3 0 0
2 5 3 4 0
3 0 0 0 0
3 4 0 0 0
3 4 2 0 0
3 4 2 5 0
3 4 5 0 0
、今、私はどこの最初の要素のすべての行を取得したいです特定の値Xであり、最後の要素(つまり最後の要素!= 0)は特定の値Y、ORは反転します。最初はY、最後はXです。
forループは使用しません。( ありがとう!
EDIT:特定の最初の要素を含むすべての行をフィルタリングするのは簡単ですが、ここで私を助ける必要はありません。それでは、私は次の操作を実行したいとしましょう:最後の要素(!各行のつまり最後の要素は、= 0)すべての行をフィルターXまたはYのいずれかである
EDITあなたの記事のための おかげで多くのことを。私は473408 * 10要素の行列で3つの可能な解をベンチマークしました。ここでbenchmarkscriptだ: http://pastebin.com/9hEAWw9a
結果は以下の通りであった。
t1 = 2.9425 Jonas
t2 = 0.0999 Brendan
t3 = 0.0951 Oli
ので、おかげでたくさんの皆さん、私はオリのソリューションに固執ので、それを受け入れますよ。しかし、他のすべてのソリューションにも感謝します!
終わりの前にゼロがあれば失敗するでしょうが、いい考えです。 +1とにかく – Jonas
@ジョナス:あなたはブレンダンの解決のような意味ですか?実際には、私はブレンドの投稿にコメントしたように、これは問題ではありません。なぜなら、実際にはリコール終了時には唯一のゼロがあるからです。 – tim
@Oli:Thanks Oli、これもかなりいいです!最初の投稿で私の編集を見て、そこにベンチマークスクリプトとあなたのスクリプトが勝つ(:したがって私は受け入れた! – tim