web-dev-qa-db-ja.com

演算子「ドット」(。)はどういう意味ですか?

コードを考えると:

 A = [1 2 3; 3 2 1]
 B = A.^2

出力 :

B =

     1     4     9
     9     4     1

しかし、私がこれを行う場合:B = A^2

出力は次のとおりです。

Error using  ^ 
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

演算子.正確に?

31
JAN

ドット自体は演算子ではなく、_.^_は演算子です。

_.^_は pointwise product であるため、_.*_はpointwise¹(つまり要素ごと)の累乗です。

_.^_アレイ電源。 _A.^B_は、要素A(i,j)B(i,j)乗の行列です。 ABは、どちらかがスカラーでない限り、同じサイズでなければなりません。

C.f.

¹)したがって、ドット。

53
kay

MATLABのドキュメントには、このトピック専用のページ全体があります: Array vs. Matrix Operations 。その要点は以下のとおりです。

MATLAB®には、2つの異なるタイプの算術演算があります:配列演算および行列演算。これらの算術演算を使用して、数値計算を実行できます。たとえば、2つの数値を加算したり、配列の要素を特定の累乗にしたり、2つの行列を乗算したりします。

行列演算は線形代数の規則に従います。対照的に、配列操作は要素ごとの操作を実行し、多次元配列をサポートします。ピリオド文字(.)配列演算と行列演算を区別します。ただし、行列と配列の演算は加算と減算で同じであるため、文字ペア.+および.-は不要です。

5
Dev-iL