Bird
Raised Fist0
MATLABdata~5 mins

Element-wise operations (.*, ./, .^) in MATLAB

Choose your learning style10 modes available
Introduction
Element-wise operations let you do math on each item in two lists or arrays separately, just like doing the same task on each apple in a basket.
When you want to multiply two lists of numbers, matching each pair one by one.
When you need to divide each number in one list by the matching number in another list.
When you want to raise each number in a list to the power of the matching number in another list.
When working with arrays where you want to apply operations to each element, not the whole array at once.
When you want to avoid matrix multiplication and instead do simple math on each element.
Syntax
MATLAB
C = A .* B
C = A ./ B
C = A .^ B
The dot (.) before the operator means 'element-wise', so it works on each pair of elements.
A and B must be the same size or compatible sizes for these operations to work.
Examples
Multiply each element of A by the matching element of B.
MATLAB
A = [1 2 3];
B = [4 5 6];
C = A .* B;
Divide each element of A by the matching element of B.
MATLAB
A = [10 20 30];
B = [2 4 5];
C = A ./ B;
Raise each element of A to the power of the matching element of B.
MATLAB
A = [2 3 4];
B = [3 2 1];
C = A .^ B;
Sample Program
This program shows how to multiply, divide, and raise elements of two arrays one by one.
MATLAB
A = [1 2 3];
B = [4 5 6];

mult = A .* B;
div = A ./ B;
pow = A .^ B;

fprintf('Multiplication result: ');
fprintf('%d ', mult);
fprintf('\n');

fprintf('Division result: ');
fprintf('%.2f ', div);
fprintf('\n');

fprintf('Power result: ');
fprintf('%d ', pow);
fprintf('\n');
OutputSuccess
Important Notes
If you forget the dot (.) before the operator, MATLAB will try matrix operations and may give errors or wrong results.
Element-wise operations are very useful for working with data arrays where you want to keep things simple and direct.
Summary
Element-wise operators (.*, ./, .^) do math on each pair of elements in arrays.
Use the dot (.) before the operator to tell MATLAB to work element by element.
Make sure arrays are the same size or compatible for element-wise operations.

Practice

(1/5)
1. In MATLAB, what does the operator .* do when applied between two arrays of the same size?
easy
A. Performs matrix multiplication of the arrays
B. Performs element-wise multiplication of the arrays
C. Divides the first array by the second array element-wise
D. Raises each element of the first array to the power of the second array

Solution

  1. Step 1: Understand the operator .* in MATLAB

    The .* operator multiplies corresponding elements of two arrays of the same size.
  2. Step 2: Differentiate from matrix multiplication

    Matrix multiplication uses * without the dot and follows linear algebra rules, unlike element-wise multiplication.
  3. Final Answer:

    Performs element-wise multiplication of the arrays -> Option B
  4. Quick Check:

    .* means element-wise multiply [OK]
Hint: Dot before operator means element-wise operation [OK]
Common Mistakes:
  • Confusing .* with matrix multiplication *
  • Thinking .* divides arrays
  • Assuming .* raises to power
2. Which of the following is the correct syntax for element-wise division of two arrays A and B in MATLAB?
easy
A. A / B
B. A .\ B
C. A ./ B
D. A // B

Solution

  1. Step 1: Recall element-wise division syntax

    Element-wise division in MATLAB uses ./ between arrays.
  2. Step 2: Identify incorrect options

    / is matrix right division, .\ is element-wise left division, and // is not valid in MATLAB.
  3. Final Answer:

    A ./ B -> Option C
  4. Quick Check:

    ./ means element-wise division [OK]
Hint: Use dot before slash for element-wise division [OK]
Common Mistakes:
  • Using / instead of ./
  • Confusing left and right division operators
  • Using invalid operators like //
3. What is the output of the following MATLAB code?
A = [2, 4; 6, 8];
B = [1, 2; 3, 4];
C = A .^ B;
medium
A. [2, 16; 216, 4096]
B. [2, 8; 18, 32]
C. [2, 4; 6, 8]
D. Error due to incompatible sizes

Solution

  1. Step 1: Understand element-wise power operation

    The operator .^ raises each element of A to the power of the corresponding element in B.
  2. Step 2: Calculate each element

    Calculations:
    2^1 = 2
    4^2 = 16
    6^3 = 216
    8^4 = 4096
  3. Final Answer:

    [2, 16; 216, 4096] -> Option A
  4. Quick Check:

    Element-wise power = calculated matrix [OK]
Hint: Use .^ to power elements individually [OK]
Common Mistakes:
  • Confusing .^ with matrix power ^
  • Calculating powers incorrectly
  • Assuming size mismatch error
4. Consider this MATLAB code snippet:
X = [1, 2, 3];
Y = [4, 5];
Z = X .* Y;

What is the issue with this code?
medium
A. Syntax error due to missing semicolon
B. Code runs correctly and returns [4, 10, 15]
C. Z will be a scalar value
D. Dimension mismatch error for element-wise multiplication

Solution

  1. Step 1: Check array sizes for element-wise multiplication

    X is 1x3 and Y is 1x2, sizes do not match.
  2. Step 2: Understand MATLAB behavior on size mismatch

    Element-wise operations require arrays of the same size or compatible broadcasting, which MATLAB does not support here.
  3. Final Answer:

    Dimension mismatch error for element-wise multiplication -> Option D
  4. Quick Check:

    Different sizes cause error in .* [OK]
Hint: Arrays must be same size for element-wise ops [OK]
Common Mistakes:
  • Assuming MATLAB auto-broadcasts arrays
  • Ignoring size mismatch errors
  • Thinking semicolon affects operation
5. You have two matrices in MATLAB:
M = [1, 2, 3; 4, 5, 6];
N = [2, 0, 1; 3, 4, 5];

You want to create a new matrix R where each element is the result of M element-wise multiplied by N, then divided element-wise by N plus 1. Which MATLAB expression correctly computes R?
hard
A. R = (M .* N) ./ (N + 1);
B. R = M * N ./ (N + 1);
C. R = M .* (N ./ (N + 1));
D. R = (M .* N) / (N + 1);

Solution

  1. Step 1: Identify element-wise multiplication and division

    Element-wise multiplication uses .* and element-wise division uses ./.
  2. Step 2: Analyze each option

    R = (M .* N) ./ (N + 1); correctly uses .* and ./ with parentheses.
    R = M * N ./ (N + 1); uses matrix multiplication *, which is incorrect.
    R = M .* (N ./ (N + 1)); changes the order of operations, not matching the problem.
    R = (M .* N) / (N + 1); uses matrix division /, which is invalid here.
  3. Final Answer:

    R = (M .* N) ./ (N + 1); -> Option A
  4. Quick Check:

    Use dot operators for element-wise multiply and divide [OK]
Hint: Use parentheses and dot operators for element-wise math [OK]
Common Mistakes:
  • Using matrix multiplication instead of element-wise
  • Forgetting dot before division operator
  • Misplacing parentheses changing operation order
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard