Import data with filters

20 views (last 30 days)
julios
julios on 10 Sep 2024
Commented: Eric Sofen on 18 Sep 2024
% How can I import some data in a table (import with filters)
Name | Age
Hugo|30
Paco|40
Luis |50
Gus|60
% I need import in a table only person with age >= 50

Answers (1)

Avni Agrawal
Avni Agrawal on 10 Sep 2024
I understand that you are trying to import data into a table in MATLAB and apply a filter to only include rows where the age is greater than or equal to 50, you can follow these steps. Assume you have your data in a text file named `data.txt`.
Here's how you can achieve this:
  • Use `readtable` to import the data into a table.
  • Use logical indexing to filter the rows where the age is greater than or equal to 50.
Here's a sample MATLAB script to do this:
% Read the data from the file
data = readtable('data.txt', 'Delimiter', ',');
% Apply the filter for age >= 50
filteredData = data(data.Age >= 50, :);
% Display the filtered table
disp(filteredData);
Name Age ________ ___ {'Luis'} 50 {'Gus' } 60
  • readtable('data.txt', 'Delimiter', ',')`: This function reads the data from a CSV file and creates a table. The `Delimiter` parameter specifies that the data is comma-separated.
  • data(data.Age >= 50, :)`: This line uses logical indexing to filter the rows. `data.Age >= 50` creates a logical array where each element is `true` if the condition is met and `false` otherwise. The `:` selects all columns for the filtered rows.
  • Make sure the data file (`data.txt`) is in the current working directory or provide the full path to the file. Adjust the file name and path as necessary to match your data source.
I hope this helps!
  5 Comments
Walter Roberson
Walter Roberson on 14 Sep 2024
If you have a regular table of data, and it is a large file, and you need different sub-sections of it at different times, then you could consider switching to using a database.
Eric Sofen
Eric Sofen on 18 Sep 2024
If your data are in a Parquet file, you can filter without importing all the data using rowfilter. That said, rowfilter can also be used on a table imported using readtable, but you do end up reading the whole file because with something like a CSV there isn't a good way to preemptively know where the age >=50 values exist.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!