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

13 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)

Categories

Find more on Data Import from MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!