使用Matlab读取CSV文件并绘制图形

时间:2014-02-03 20:51:29

标签: matlab csv

我想在Matlab中创建一个脚本,可以从CSV文件中读取数据并绘制它。我的数据类似于:

时间BPM(HeartRate)
5:55:26 0
5:55:26 0
5:55:27 66
5:55:27 70
5:55:27 71
5:55:27 74
...

我想在x轴上绘制时间,在y轴上绘制BPM。我尝试过以下方法:

clear, clc;
ftoread = 'data.csv';
fid = fopen(ftoread);

y=data(:,1);
x=data(:,2);
plot(x,y);
xlabel('Time');
ylabel('Heart Rate');
title('Heart Rate Vs. Time');

很遗憾,我在y=data(:,1)收到错误。

2 个答案:

答案 0 :(得分:3)

为什么不使用csvread

data = csvread('data.csv');
x=data(:,1);
y=data(:,2);
% etc...

答案 1 :(得分:2)

看起来你错过了一些步骤。 csvreaddlmread可能效果不佳,因为每行都有一个字符串和一个数字。 textscan应该快速而简单:

ftoread = 'data.csv';
fid = fopen(ftoread);
data = textscan(fid,'%s%f'); % Read in a string and a double
fclose(fid); % If you call fopen, make sure you also call fclose

x = data{1};
y = data{2};

然后,您可能希望使用datestrdatenum等功能将时间字符串转换为其他值。我相信偶数接受单元格数组(如x)作为输入。