6

max行列の特定の列で関数を使用しているだけで、構文に疑問を感じました。

2 番目の引数として渡されたこの空の行列は何を意味するのでしょうか?

max(A,[],dim)

max(A,i)おそらく比較を行うものからそれを分離するためであることはわかっています。しかし、なぜ空の行列なのでしょうか?

一定の意味はありますか?この種の引数は、このような他の関数で使用されていますか?

4

3 に答える 3

9

実際、あなたの推測は正しいです。Matlab は厳密に型指定された言語ではなく、古典的な関数のオーバーロード手法がないため、関数はコンテキストによって引数の意味を推測する必要があります。Mathworks は、単一の行列内での最大値の検出と、単一の関数内の 2 つの配列に沿ったものをマージしたいと考えていました。

したがって、これらのケースを何らかの方法で分離する必要があります。また、空の行列[]をプレースホルダーとして使用します。max(A, dim)そうしないと、大文字と小文字を区別できませんmax(A, B)。この目的のために特別な変数を使用することもできましたが、これ[]が基本的な構造です。

于 2013-06-06T07:16:46.200 に答える
2

2 つの等しいサイズの行列を比較して、要素ごとの最大値を見つけることができます。ドキュメントを参照してください。入力として使用[]することは、後の入力にスキップする方法にすぎません。

于 2013-06-06T07:04:02.567 に答える