delete rows based on whether the day is a wednesday or not
4 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I have a dataset with 18 columns and thousands of rows. In column 6 is always the date of the respective row. I would now like to check for which rows column 6 (dates) is a wednesday.
I already have the following code:
dataset=zeros(size(data18,1),19);
dataset(:,1:18)=data18;
numberEl=length(dataset(:,1));
numberID=[1:numberEl]';
dataset(:,19)=numberID;
d1=dataset(:,6);
dates=datestr(d1,'ddd-mm-yyyy');
M=[cellstr(dates) num2cell((1:numberEl)')];
M=M(ismember(dates(:,1:3),'Wed','rows'),:);
nums = [M{:,2}];
rowsToKeep=nums';
rowsToDeleteNotWednesday=dataset(:,19)~rowsToKeep;
dataset(rowsToDeleteNotWednesday, :) = [];
The last two lines of code is not working. In column 19, I have all numbers from one till the end of the vector and I though that there could be a way that everytime that number is not equal to one of the numbers in vector rowsToKeep, the entire row will be deleted.
0 件のコメント
採用された回答
Azzi Abdelmalek
2013 年 5 月 4 日
You can use
idx=find(ismember(dates(:,1:3),'Wed','rows'));
3 件のコメント
Azzi Abdelmalek
2013 年 5 月 4 日
dataset=zeros(size(data18,1),19);
dataset(:,1:18)=data18;
numberEl=length(dataset(:,1));
numberID=[1:numberEl]';
dataset(:,19)=numberID;
d1=dataset(:,6);
dates=datestr(d1,'ddd-mm-yyyy');
rowsToKeep=find(ismember(dates(:,1:3),'Wed','rows'));
final_dataset=dataset(rowsToKeep,:)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Tables についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!