Matrix multiplication - MATLAB mtimes * (2024)

Matrix multiplication

collapse all in page

Syntax

C = A*B

C = mtimes(A,B)

Description

example

C = A*B is the matrix product of A and B. If A is an m-by-p and B is a p-by-n matrix, then C is an m-by-n matrix defined by

C(i,j)=k=1pA(i,k)B(k,j).

This definition says that C(i,j) is the inner product of the ith row of A with the jth column of B. You can write this definition using the MATLAB® colon operator as

C(i,j) = A(i,:)*B(:,j)

For nonscalar A and B, the number of columns of A must equal the number of rows of B. Matrix multiplication is not universally commutative for nonscalar inputs. That is, A*B is typically not equal to B*A. If at least one input is scalar, then A*B is equivalent to A.*B and is commutative.

C = mtimes(A,B) isan alternative way to execute A*B, but is rarelyused. It enables operator overloading for classes.

Examples

collapse all

Multiply Two Vectors

Open Live Script

Create a 1-by-4 row vector, A, and a 4-by-1 column vector, B.

A = [1 1 0 0];B = [1; 2; 3; 4];

Multiply A times B.

C = A*B

The result is a 1-by-1 scalar, also called the dot product or inner product of the vectors A and B. Alternatively, you can calculate the dot product AB with the syntax dot(A,B).

Multiply B times A.

C = B*A
C = 4×4 1 1 0 0 2 2 0 0 3 3 0 0 4 4 0 0

The result is a 4-by-4 matrix, also called the outer product of the vectors A and B. The outer product of two vectors, AB, returns a matrix.

Multiply Two Arrays

Open Live Script

Create two arrays, A and B.

A = [1 3 5; 2 4 7];B = [-5 8 11; 3 9 21; 4 0 8];

Calculate the product of A and B.

C = A*B
C = 2×3 24 35 114 30 52 162

Calculate the inner product of the second row of A and the third column of B.

A(2,:)*B(:,3)
ans = 162

This answer is the same as C(2,3).

Input Arguments

collapse all

A, BOperands
scalars | vectors | matrices

Operands, specified as scalars, vectors, or matrices.

  • If at least one input is scalar, then A*B is equivalent to A.*B. In this case, the nonscalar array can be any size.

  • For nonscalar inputs, A and B must be 2-D arrays where the number of columns in A must be equal to the number of rows in B.

  • If one of A or B is an integer class (int16, uint8, …), then the other input must be a scalar. Operands with an integer data type cannot be complex.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | duration | calendarDuration
Complex Number Support: Yes

Output Arguments

collapse all

C — Product
scalar | vector | matrix

Product, returned as a scalar, vector, or matrix. Array C has the same number of rows as input A and the same number of columns as input B. For example, if A is an m-by-0 empty matrix and B is a 0-by-n empty matrix, then A*B is an m-by-n matrix of zeros.

Tips

  • With chained matrix multiplications such as A*B*C, you might be able to improve execution time by using parentheses to dictate the order of the operations. Consider the case of multiplying three matrices with A*B*C, where A is 500-by-2, B is 2-by-500, and C is 500-by-2.

    • With no parentheses, the order of operations is left to right so A*B is calculated first, which forms a 500-by-500 matrix. This matrix is then multiplied with C to arrive at the 500-by-2 result.

    • If you instead specify A*(B*C), then B*C is multiplied first, producing a 2-by-2 matrix. The small matrix then multiplies A to arrive at the same 500-by-2 result, but with fewer operations and less intermediate memory usage.

References

[1] “BLAS (Basic Linear Algebra Subprograms).” Accessed July 18, 2022. https://netlib.org/blas/.

[2] Davis, Timothy A. “Algorithm 1000: SuiteSparse:GraphBLAS: Graph Algorithms in the Language of Sparse Linear Algebra.” ACM Transactions on Mathematical Software 45, no. 4 (December 31, 2019): 1–25. https://doi.org/10.1145/3322125.

Extended Capabilities

HDL Code Generation
Generate VHDL, Verilog and SystemVerilog code for FPGA and ASIC designs using HDL Coder™.

Version History

Introduced before R2006a

expand all

See Also

colon | times | dot | cross | pagemtimes | tensorprod

Topics

  • Array vs. Matrix Operations
  • Operator Precedence
  • MATLAB Operators and Special Characters

MATLAB Command

You clicked a link that corresponds to this MATLAB command:

 

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Matrix multiplication - MATLAB mtimes * (1)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本 (日本語)
  • 한국 (한국어)

Contact your local office

Matrix multiplication - MATLAB mtimes * (2024)
Top Articles
Latest Posts
Article information

Author: The Hon. Margery Christiansen

Last Updated:

Views: 5999

Rating: 5 / 5 (50 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: The Hon. Margery Christiansen

Birthday: 2000-07-07

Address: 5050 Breitenberg Knoll, New Robert, MI 45409

Phone: +2556892639372

Job: Investor Mining Engineer

Hobby: Sketching, Cosplaying, Glassblowing, Genealogy, Crocheting, Archery, Skateboarding

Introduction: My name is The Hon. Margery Christiansen, I am a bright, adorable, precious, inexpensive, gorgeous, comfortable, happy person who loves writing and wants to share my knowledge and understanding with you.