Is there a way to only read every third row of a .csv file?

7 views (last 30 days)
I need my code to read every third row and every column of a .csv file and save it seperately. For example I need the third row, sixth row, ninth row saved but not the first and second rows.

Accepted Answer

LO
LO on 10 Jul 2021
Edited: LO on 10 Jul 2021
import the file and the use logic indexing, double check if it is selecting the right rows, if not just change the index array to index = 1:3:height(forcetest), I am not sure which rows you need
% filename = 'C:\YOURPATH\forcetest.csv';
filename = 'C:\Users\Livio\Downloads\forcetest.csv';
delimiter = ',';
formatSpec = '%f%f%f%[^\n\r]';
fileID = fopen(filename,'r');
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'TextType', 'string', 'EmptyValue', NaN, 'ReturnOnError', false);
fclose(fileID);
forcetest = table(dataArray{1:end-1}, 'VariableNames', {'VarName1','VarName2','VarName3'});
clearvars filename delimiter formatSpec fileID dataArray ans;
index = 1:2:height(forcetest);
selected_table = forcetest(index,:);
  2 Comments
Petch Anuwutthinawin
Petch Anuwutthinawin on 10 Jul 2021
Oh sorry I mistyped, I meant that I need the rows where column 1 is equal to 2. So it would be row 3,6,9 etc but there are multiple points where it misses a 2. Therefore I cannot sort by code.
LO
LO on 10 Jul 2021
Edited: LO on 10 Jul 2021
this selects rows with values equal to 2
index = table2array(forcetest(:,1))==2;

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!