コードを考えると:
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.
演算子.
正確に?
ドット自体は演算子ではなく、_.^
_は演算子です。
_.^
_は pointwise product であるため、_.*
_はpointwise¹(つまり要素ごと)の累乗です。
_
.^
_アレイ電源。 _A.^B
_は、要素A(i,j)
のB(i,j)
乗の行列です。A
とB
は、どちらかがスカラーでない限り、同じサイズでなければなりません。
C.f.
¹)したがって、ドット。
MATLABのドキュメントには、このトピック専用のページ全体があります: Array vs. Matrix Operations 。その要点は以下のとおりです。
MATLAB®には、2つの異なるタイプの算術演算があります:配列演算および行列演算。これらの算術演算を使用して、数値計算を実行できます。たとえば、2つの数値を加算したり、配列の要素を特定の累乗にしたり、2つの行列を乗算したりします。
行列演算は線形代数の規則に従います。対照的に、配列操作は要素ごとの操作を実行し、多次元配列をサポートします。ピリオド文字(
.
)配列演算と行列演算を区別します。ただし、行列と配列の演算は加算と減算で同じであるため、文字ペア.+
および.-
は不要です。