Bird
Raised Fist0
MATLABdata~10 mins

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

Choose your learning style10 modes available
Concept Flow - Element-wise operations (.*, ./, .^)
Start with two arrays
↓
Choose element-wise operator
↓
Apply operator to each pair of elements
↓
Create new array with results
↓
End
Element-wise operations apply the chosen operator to each matching element of two arrays, producing a new array of the same size.
Execution Sample
MATLAB
A = [1 2 3];
B = [4 5 6];
C = A .* B;
D = A ./ B;
E = A .^ 2;
This code multiplies, divides, and raises elements of arrays A and B element-wise.
Execution Table
StepOperationElements InvolvedResult ElementResult Array State
1Multiply element 1A(1)=1, B(1)=41*4=4[4 _ _]
2Multiply element 2A(2)=2, B(2)=52*5=10[4 10 _]
3Multiply element 3A(3)=3, B(3)=63*6=18[4 10 18]
4Divide element 1A(1)=1, B(1)=41/4=0.25[0.25 _ _]
5Divide element 2A(2)=2, B(2)=52/5=0.4[0.25 0.4 _]
6Divide element 3A(3)=3, B(3)=63/6=0.5[0.25 0.4 0.5]
7Power element 1A(1)=1, exponent=21^2=1[1 _ _]
8Power element 2A(2)=2, exponent=22^2=4[1 4 _]
9Power element 3A(3)=3, exponent=23^2=9[1 4 9]
💡 All elements processed for each operation, arrays fully computed.
Variable Tracker
VariableStartAfter Step 3After Step 6After Step 9
A[1 2 3][1 2 3][1 2 3][1 2 3]
B[4 5 6][4 5 6][4 5 6][4 5 6]
C (A.*B)[][4 10 18][4 10 18][4 10 18]
D (A./B)[][][0.25 0.4 0.5][0.25 0.4 0.5]
E (A.^2)[][][][1 4 9]
Key Moments - 3 Insights
Why do we use a dot before the operator like .* instead of just *?
The dot means the operation is done element by element, not matrix multiplication. See steps 1-3 in execution_table where each element multiplies separately.
Can we use element-wise operators on arrays of different sizes?
No, arrays must be the same size or compatible for broadcasting. Here, A and B have the same size, so element-wise operations work as shown in all steps.
What happens if we forget the dot and write A * B?
Without the dot, MATLAB does matrix multiplication, which is different and may cause errors if sizes don't match. Our example uses .* to multiply elements individually (see execution_table).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of C after step 2?
A[4 _ _]
B[_ 10 _]
C[4 10 _]
D[1 2 3]
💡 Hint
Check the 'Result Array State' column at step 2 for C (A.*B).
At which step does the division operation finish computing all elements?
AStep 3
BStep 6
CStep 9
DStep 1
💡 Hint
Look for the last step where 'Divide element' appears in the 'Operation' column.
If we change A to [2 4 6], what will be the value of E after step 9?
A[4 16 36]
B[1 4 9]
C[2 4 6]
D[8 16 36]
💡 Hint
E is A.^2, so square each element of A. Check variable_tracker for E's final values.
Concept Snapshot
Element-wise operations use a dot before the operator: .* for multiply, ./ for divide, .^ for power.
They apply the operation to each pair of elements in arrays of the same size.
Result is a new array with each element computed separately.
Without the dot, MATLAB does matrix operations, which are different.
Always ensure arrays are compatible sizes for element-wise operations.
Full Transcript
This lesson shows how MATLAB performs element-wise operations using the dot operators: .*, ./, and .^. Starting with two arrays A and B, each element in A is combined with the corresponding element in B using the chosen operator. For example, A .* B multiplies each element of A by the matching element of B, producing a new array C. The execution table traces each step: multiplying, dividing, and powering elements one by one. The variable tracker shows how arrays C, D, and E build up their values after each step. Key points include why the dot is needed to do element-wise operations instead of matrix operations, and that arrays must be the same size. The quiz questions check understanding of intermediate results and effects of changing inputs. This visual step-by-step helps beginners see exactly how element-wise operations work in MATLAB.

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