Quick question regarding CSV file reading.
조회 수: 1 (최근 30일)
이전 댓글 표시
I have two csv files with only one colum each. I want to extract only the first number (measurement counter) and Sensor output last (V), i dont care about the water temp. The second file has less measurements (rows) than the first, so i need to chop out some measurements (rows). Preferably i want to start from a specific row, for example row 3-9 in CSVfile1 and row 4-8 in CSVfile2. Can anyone explain how i could do this, if its even possible?
I also need to plot the two tables/arrays in a same graph.
Best regards,
-Ben
댓글 수: 4
채택된 답변
Mathieu NOE
2021년 5월 3일
hello
my quick suggestion to the quick question
fid=fopen('cycle1.csv');
e=textscan(fid,'%s','headerlines',1);
e_splitted = split(e{1},',');
outdata = cellfun(@str2num,strrep(e_splitted, '"', '')); % remove double quotes & convert string to num
% get my Counter and Sensor_Output data
start_row = 3;
stop_row = 9;
Counter_Output = outdata(start_row:stop_row,1);
Sensor_Output = outdata(start_row:stop_row,2);
댓글 수: 6
추가 답변 (2개)
EmirBeg
2021년 5월 3일
편집: EmirBeg
2021년 5월 3일
Data1 = readtable('cycle1.csv');
Data2 = readtable('cycle2.csv');
t1 = table2array(Data1(:,1));
SensorOutput1 = table2array(Data1(:,2));
t2 = table2array(Data2(:,1));
SensorOutput2 = table2array(Data2(:,2));
SizeDiff = size(SensorOutput1,1)-size(SensorOutput2,1);
StartingRow = 1; %set the row that you want to start with
t1 = t1(StartingRow:size(t1,1)-SizeDiff);
SensorOutput1 = SensorOutput1(StartingRow:size(SensorOutput1,1) - SizeDiff);
plot(t1,SensorOutput1);
hold on;
plot(t2,SensorOutput2);
hold off;
댓글 수: 1
Jeremy Hughes
2021년 5월 4일
This is a bit cumbersome:
t1 = table2array(Data1(:,1));
SensorOutput1 = table2array(Data1(:,2));
t2 = table2array(Data2(:,1));
SensorOutput2 = table2array(Data2(:,2));
It would be easier just to use dynamic variable indexing:
t1 = Data1.(1);
SensorOutput1 = Data1.(2);
t2 = Data2.(1);
SensorOutput2 = Data2.(2);
Jeremy Hughes
2021년 5월 4일
I'd do this:
opts = detectImportOptions('cycle1.csv','Delimiter',',','VariableNamingRule','preserve');
opts.SelectedVariableNames = opts.VariableNames(1:2);
opts.DataLines = [3 9];
T1 = readmatrix('cycle1.csv',opts);
opts.DataLines = [4 8];
T2 = readmatrix('cycle2.csv',opts);
I'll leave the plotting to you.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Spectral Measurements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!