delete specific rows in a table
2 次查看(过去 30 天)
显示 更早的评论
Hi guys, I need your help.
See attached table. I would like to delete the rows in which the first column (time) have a decimal number in it (keep only those rows where the time is an integer number)
After that I would like to delete the rows where the time is repeated and keep only the first one. For example, if there are 3 rows with time 5, we should only keep the top row.
Any help with that?
Many thanks
0 个评论
采纳的回答
the cyclist
2021-9-17
I believe this does what you want. Note that this file doesn't have any repeated integer times. So, you don't need the second step.
% Read in the Excel file
A = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/741684/A.xlsx'); % You can just use 'A.xlsx' here
% Identify the rows that have exact integer time
keepIntegerTimeIndex = logical(abs(A{:,1}==round(A{:,1})));
% Keep only those rows
A = A(keepIntegerTimeIndex,:);
% Verify that there are only unique integer times:
length(A{:,1}) == length(unique(A{:,1}))
更多回答(1 个)
Image Analyst
2021-9-17
Try this:
allData = readmatrix('A.xlsx');
times = allData(:, 1);
% Find out where time is a pure integer
goodRows = times - round(times) == 0;
% Extract good rows
times = times(goodRows);
allData = allData(goodRows, :);
1 个评论
Image Analyst
2021-9-17
Basically same as the Cyclist. I was working on mine while he was uploading his.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!