How to get a plot out of a .csv data from a sensor?
47 views (last 30 days)
Show older comments
Mathias Braun
on 10 Dec 2023
Answered: Mathias Braun
on 15 Dec 2023
Hello Community,
I have a problem with creating a plot from the .csv-data which I created by a distance sensor. I want to have the measure time in the x-axis and the distance on the y-axis. Could anyone help me for coding?
Thank you for helping me.
0 Comments
Accepted Answer
Image Analyst
on 10 Dec 2023
Try this:
fileName = 'Sample_0012023-11-30 15.05.48.343_A0000.csv'
t = readtable(fileName)
times = t.Var1;
distances = t.Var2;
plot(times, distances, 'b-');
grid on;
xlabel('Time');
ylabel('Distance');
title('Distance vs. Time');
0 Comments
More Answers (3)
akshatsood
on 10 Dec 2023
Edited: akshatsood
on 10 Dec 2023
I understand that you are encountering difficulties in creating a plot from the CSV data generated by a distance sensor. To plot "time vs distance plot", please refer to the following steps
- Load the CSV data into a "table" datatype using "readtable" function.
- Extract the values for time and distance from the "data" table
- Use "scatter" function to plot time vs distance
Here is the code snippet for your reference
% load CSV data to table
data = readtable("Sample_0012023-11-30 15.05.48.343_A0000.csv");
% read time and distance from the table
time = data(:,1).Var1;
distance = data(:,2).Var2;
% scatter plot for time vs distance
scatter(time, distance);
% add annotations
xlabel('Time');
ylabel('Distance');
title('Distance vs. Time');
axis tight;
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1564844/image.png)
Have a look at the following references for functions used and gain a better understanding
Please let me know if you have any further questions.
I hope this helps.
0 Comments
Alexander
on 10 Dec 2023
My old-fashioned solution, not "fine arts", but works.
clear; close all;
Lines = char(zeros(30000,40)); % Could be any number as long as larger than expected and fitting in memory
LC = 1; % Loop counter
fid = fopen('Sample_0012023-11-30 15.05.48.343_A0000.csv');
Header = fgetl(fid)
DAQstart = fgetl(fid)
ColumnName = fgetl(fid)
while ~feof(fid)
Lines(LC,:) = fgets(fid);
LC = LC + 1;
end
fclose(fid);
Data = str2double(string(char(Lines(:,31:end)))); % The meassured data
D = Lines(:,1:19); % The Date
FS = str2double(string(Lines(:,20:26)))/24/60/60; % Fractions of Seconds
Tnum = datenum(D(1:end,:),'yyyy-mm-dd HH:MM:SS')+FS; % The date in numbers
Tstart = (Tnum - Tnum(1))*24*60*60; % The timeline beginning at 0
%plot(Tnum, Data)
plot(Tstart, Data); xlabel('t [s]'); ylabel('Distance'); title(DAQstart)
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!