How to Filter Rows of Cell Array By Date Range

4 ビュー (過去 30 日間)
Brian
Brian 2024 年 7 月 30 日
回答済み: the cyclist 2024 年 7 月 30 日
Simplied my problem so it's easier to solve. I have a 4x3 array "a" and want to remove rows not within a specified date range. I would like to do this without a loop that would slow down my code. Any suggestions matlab wizards out there?
%Date Range
MinDate = datetime('14-Jul-2024');
MaxDate = datetime('17-July-2024');
%Cell Array
a = cell(4,3);
random = [1 1
2 1
3 3
4 5];
dates = datetime({'10-Jul-2024'
'15-Jul-2024'
'20-Jul-2024'
'16-Jul-2024'});
a(:,3) = num2cell(dates);
a(:,1:2) = num2cell(random);
%How do I filter a by deleting rows not within Date Range? i.e. delete rows 1 & 3 based on the value of a

回答 (1 件)

the cyclist
the cyclist 2024 年 7 月 30 日
Here is one way:
%Date Range
MinDate = datetime('14-Jul-2024');
MaxDate = datetime('17-July-2024');
%Cell Array
a = cell(4,3);
random = [1 1
2 1
3 3
4 5];
dates = datetime({'10-Jul-2024'
'15-Jul-2024'
'20-Jul-2024'
'16-Jul-2024'});
a(:,3) = num2cell(dates);
a(:,1:2) = num2cell(random);
% Filter
a_filtered = a(isbetween([a{:,3}],MinDate,MaxDate),:)
a_filtered = 2x3 cell array
{[2]} {[1]} {[15-Jul-2024]} {[4]} {[5]} {[16-Jul-2024]}

カテゴリ

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

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by