Import data with filters

25 ビュー (過去 30 日間)
julios
julios 2024 年 9 月 10 日
コメント済み: Eric Sofen 2024 年 9 月 18 日
% 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

回答 (1 件)

Avni Agrawal
Avni Agrawal 2024 年 9 月 10 日
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 件のコメント
Walter Roberson
Walter Roberson 2024 年 9 月 14 日
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 2024 年 9 月 18 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeText Files についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by