2013-09-02 9 views
5

「秘密」入力を持つ関数が見つかりました。理由は何でしょうか?そのようなことの多くの場合がありますか? radon関数の文書構文でMATLABの "ラドン"関数のように、壮大な構文とは何ですか?

、そこに関数を呼び出すには二つの方法である - (画像のための所望の投影角)ITHETAの入力を有する従来の、またTHETAを省略するオプションは、と与えます入力としてIのみ。

しかし、radon.mファイル内のコメントには、最後にもう1つの部分があります。これは、「壮大な構文」と呼ばれています。これにより、の3つの入力が可能になり、希望の投影数も含まれます。そして、それは本当に機能します!

これはなぜ文書化されていませんか?過去に利用可能になってから削除/変更されましたか(「壮大な構文」が示唆するように)?では、なぜこれはまだ機能していますか?

また、別の質問についてradon.m

機能の主要部分は、別の関数を呼び出すことによって計算されるが、radoncと呼ばれます。それは何ですか?それはどこに住んでいますか?私はそれを見つけることができません、またはそれの任意の言及どこに。

+1

私は、人々が新しい構文を使用するよう強く奨励するためにドキュメントから削除したと思います。下位互換性のためにも動作します。古いMATLABバージョンで書かれたコードは、新しいMATLABバージョンでも動作します。このプロセスは非常に一般的です。それは[depracation](http://en.wikipedia.org/wiki/Deprecation)と呼ばれています。これはMathWorksの取り組みです。 –

+1

2番目の質問については(ここでもまた推測します) - 関数名が "c"で終了するたびに、通常はCで実装されてからMEXファイルにコンパイルされることを示します。関数の一部分。 –

+0

@RodyOldenhuisありがとう。MEXファイルについて - ファイル自体がない場合、マシンはファイルをどのように実行できますか?それとも私はそれを見つけられなかった...? – Adiel

答えて

9

は「適用除外は、」構文は、一般的に、それは

  1. を文書化するために使用されると
  2. は、まだいくつかの顧客はまだそれに依存しているため、種類のサポートされる必要がサポートされている構文だということを意味し、MathWorksのではないだろうコードが破損してほしい
  3. は推奨されなくなりました。新しいユーザーがそれに頼ることができないようにドキュメント化されていません。
  4. は今後完全に削除される可能性があります。

radoncは、\toolbox\images\images\privateである。 whichコマンドはそのプライベートディレクトリにあるので、それを見つけることはできません。そのため、すぐ上のディレクトリ(radon自身を含む)の関数によってのみ呼び出すことができます。ファイルがradonc.mexw64(別のmexファイルの拡張子で、別のプラットフォームにいれば)、MATLABコードではなくコンパイル済みのCコードとして実装されていることを示しています(これが尋ねる理由の場合は、ソースを見ることはできません)。

編集:同じディレクトリにファイルradonc.mがあることに注意してください。 mexファイルの方が優先順位が高いため、このファイルは何もしません。 radonc機能のヘルプを提供することがあります。 help radoncと入力すると、radonc.mのコメントによって提供されるヘルプテキストが表示されます。

+0

私はこれをすべて試しましたが、私のバージョン(R2008a)では "radonc not found"と表示されています。とにかく、説明された答えをありがとう:) – Adiel

+0

説明したように、 'radonc'を実行しようとするか、' which radonc'と入力すると、MATLABはそれを見つけられません。これは、それがプライベートディレクトリにあり、パス上に存在しないためです。これは、 'radon'関数を含む直上のディレクトリの関数からのみ呼び出すことができます。それにもかかわらず、それはそこにあります。 (私は8aを利用することはできませんが、私が言ったことはすべてそのバージョンで真実だと信じています)。 –

+0

私はあなたの説明がすべて真実だとも信じています。私が書いたのは、 "ラドン助け"に関してだけで、私のMATLABが私に答えたものです... – Adiel

関連する問題