delete rows based on whether the day is a wednesday or not
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Azzi Abdelmalek
il 4 Mag 2013
You can use
idx=find(ismember(dates(:,1:3),'Wed','rows'));
3 Commenti
Azzi Abdelmalek
il 4 Mag 2013
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,:)
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!