In MATLAB, indexing and slicing are fundamental operations for accessing and manipulating elements within vectors and matrices. This section will cover the basics of indexing, logical indexing, and slicing techniques.

Key Concepts

  1. Indexing Basics

    • Accessing elements using indices.
    • Using colon operator for range selection.
    • End keyword for referencing the last element.
  2. Logical Indexing

    • Using logical conditions to index arrays.
    • Combining logical conditions.
  3. Slicing

    • Extracting subarrays from matrices.
    • Modifying subarrays.

Indexing Basics

Accessing Elements Using Indices

In MATLAB, you can access elements of a vector or matrix using parentheses () and indices.

% Example vector
v = [10, 20, 30, 40, 50];

% Accessing the third element
thirdElement = v(3);
disp(thirdElement); % Output: 30

% Example matrix
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];

% Accessing the element in the second row, third column
element = A(2, 3);
disp(element); % Output: 6

Using Colon Operator for Range Selection

The colon operator : is used to create vectors and select ranges of elements.

% Example vector
v = [10, 20, 30, 40, 50];

% Accessing elements from the second to the fourth
subVector = v(2:4);
disp(subVector); % Output: [20, 30, 40]

% Example matrix
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];

% Accessing the first two rows and all columns
subMatrix = A(1:2, :);
disp(subMatrix); % Output: [1, 2, 3; 4, 5, 6]

End Keyword

The end keyword is used to reference the last element in a dimension.

% Example vector
v = [10, 20, 30, 40, 50];

% Accessing the last element
lastElement = v(end);
disp(lastElement); % Output: 50

% Example matrix
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];

% Accessing the last row
lastRow = A(end, :);
disp(lastRow); % Output: [7, 8, 9]

Logical Indexing

Logical indexing allows you to select elements based on conditions.

% Example vector
v = [10, 20, 30, 40, 50];

% Logical condition: elements greater than 25
logicalIndex = v > 25;
disp(logicalIndex); % Output: [0, 0, 1, 1, 1]

% Using logical index to access elements
selectedElements = v(logicalIndex);
disp(selectedElements); % Output: [30, 40, 50]

Combining Logical Conditions

You can combine multiple logical conditions using logical operators like & (AND) and | (OR).

% Example vector
v = [10, 20, 30, 40, 50];

% Logical condition: elements greater than 15 and less than 45
logicalIndex = (v > 15) & (v < 45);
disp(logicalIndex); % Output: [0, 1, 1, 1, 0]

% Using logical index to access elements
selectedElements = v(logicalIndex);
disp(selectedElements); % Output: [20, 30, 40]

Slicing

Slicing involves extracting subarrays from matrices.

Extracting Subarrays

% Example matrix
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];

% Extracting a subarray (first two rows and first two columns)
subArray = A(1:2, 1:2);
disp(subArray); % Output: [1, 2; 4, 5]

Modifying Subarrays

You can also modify parts of a matrix by assigning values to a slice.

% Example matrix
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];

% Modifying the first row
A(1, :) = [10, 20, 30];
disp(A); % Output: [10, 20, 30; 4, 5, 6; 7, 8, 9]

Practical Exercises

Exercise 1: Accessing Elements

Given the vector v = [5, 10, 15, 20, 25, 30], access the fourth element.

Solution:

v = [5, 10, 15, 20, 25, 30];
fourthElement = v(4);
disp(fourthElement); % Output: 20

Exercise 2: Logical Indexing

Given the vector v = [3, 6, 9, 12, 15, 18], select elements greater than 10.

Solution:

v = [3, 6, 9, 12, 15, 18];
selectedElements = v(v > 10);
disp(selectedElements); % Output: [12, 15, 18]

Exercise 3: Slicing and Modifying

Given the matrix A = [1, 2, 3; 4, 5, 6; 7, 8, 9], modify the second column to [10; 20; 30].

Solution:

A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
A(:, 2) = [10; 20; 30];
disp(A); % Output: [1, 10, 3; 4, 20, 6; 7, 30, 9]

Summary

In this section, we covered the basics of indexing and slicing in MATLAB. You learned how to:

  • Access elements using indices.
  • Use the colon operator for range selection.
  • Apply logical indexing to select elements based on conditions.
  • Extract and modify subarrays using slicing techniques.

Understanding these concepts is crucial for efficient data manipulation in MATLAB. In the next section, we will delve into matrix functions and their applications.

© Copyright 2024. All rights reserved