質問

私は試験に恣意的には、任意の全次元を配列のlogicalsていただきたいと思いますようにする場合 っています。 any() だけ一次元で時間とは sum().私がテストの寸法は、繰り返し any() までの取得単一回答してしまいましたが、まず私が、より早く、正直で、優雅なアプローチ.

アイデア、浮かぶのでしょうか。

私は走2009a(R17に特有の用語ます。

役に立ちましたか?

解決

場合データマトリックス A, う:

anyAreTrue = any(A(:));

編集: デジタルあり方をよく知らないという書式では、 A(:) を利用し コロンオペレーター の全コンテンツの配列 A, は、いかな寸法は、"カギ不要期間"としての単一の列ベクトルのサイズnumel(A)-by-1)です。みつ 他の 必要な操作による列ベクトルとなっています。

他のヒント

指摘したように、

、正しい解は、ベクトルに結果を再構築することです。その後、任意の所望の結果が得られます。このように、

任意の(A(:))

任意のnumelの(A)の要素が真であった場合は、

は、真のグローバルな結果を与えます。あなたはまた、使用している可能性があります。

任意(整形(A、[]、1))

これは、明示的にリシェイプ演算子を使用しています。あなたがいずれかを適用するためにベクターにあなたの行列を変換する余分なステップを行うことを希望しない場合は、その後、別のアプローチは、独自の機能を記述することです。たとえば、ここにあなたのためにそれを行うだろう機能があります:

======================

関数の結果= myany(A)

%A内のすべてにおいて任意の要素が非ゼロ

であったかどうかを判断します

結果=任意の(A(:));

======================

検索パス上のmファイルとして保存。 (任意のプログラミング言語のための真の)MATLABの美しさは、それが完全に拡張可能です。あなたはそれがよかった、いくつかの機能がある場合は、ちょうどそれをしない少しイディオムを書きます。あなたが十分な頻度でこれを行う場合、あなたのニーズに合わせて環境をカスタマイズしています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top