If A and B are arrays, then Matlab can compute A+B and A-B when these operations are defined. For example, consider the following commands:
>> A = [1 2 3;4 5 6;7 8 9];
>> B = [1 1 1;2 2 2;3 3 3];
>> C = [1 2;3 4;5 6];
>> whos
Name Size Bytes Class
A 3x3 72 double array
B 3x3 72 double array
C 3x2 48 double array
Grand total is 24 elements using 192 bytes
>> A+B
ans =
2 3 4
6 7 8
10 11 12
>> A+C
??? Error using ==> +
Matrix dimensions must agree.
Matrix multiplication is also defined:
>> A*C
ans =
22 28
49 64
76 100
>> C*A
??? Error using ==> *
Inner matrix dimensions must agree.
If A is a square matrix and m is a positive integer, then
A^m is the product of m factors of A.
However, no notion of multiplication is defined for multi-dimensional arrays with more than 2 dimensions:
>> C = cat(3,[1 2;3 4],[5 6;7 8])
C(:,:,1) =
1 2
3 4
C(:,:,2) =
5 6
7 8
>> D = [1;2]
D =
1
2
>> whos
Name Size Bytes Class
C 2x2x2 64 double array
D 2x1 16 double array
Grand total is 10 elements using 80 bytes
>> C*D
??? Error using ==> *
No functional support for matrix inputs.
By the same token, the exponentiation operator ^ is only defined for
square 2-dimensional arrays (matrices).