在Matlab中拆分数组

在Matlab中拆分数组,matlab,csv,plot,Matlab,Csv,Plot,我正在从事这个项目,我的目标是在一个图表上绘制每秒的BPM,并从一点到另一点更改图表的颜色 我有一个包含数据的CSV文件,现在我能够绘制BPM与时间的关系图。但是,我的下一个目标是为不同的区域更改此图形的颜色 我已经将CSV文件中的LED颜色定义为a-红色、b-绿色、c-黄色和d-蓝色。样本数据如下: 秒BPM发光二极管164a2140c3110b512b6145c7146c8149c9145c106a 这是我目前拥有的代码,它将BPM与时间进行对比。现在,我必须根据CSV文件中的LED字母更改

我正在从事这个项目,我的目标是在一个图表上绘制每秒的BPM,并从一点到另一点更改图表的颜色

我有一个包含数据的CSV文件,现在我能够绘制BPM与时间的关系图。但是,我的下一个目标是为不同的区域更改此图形的颜色

我已经将CSV文件中的LED颜色定义为a-红色、b-绿色、c-黄色和d-蓝色。样本数据如下:

秒BPM发光二极管
164a
2140c
3110b
512b
6145c
7146c
8149c
9145c
106a

这是我目前拥有的代码,它将BPM与时间进行对比。现在,我必须根据CSV文件中的LED字母更改颜色。

ftoread = 'DATALOG.CSV';
fid = fopen(ftoread); %OPENS the CSV file
data = textscan(fid,'%f%f%f%c','Headerlines',1,'Delimiter',',');
fclose(fid); % closes the file

Time = data{1}; %Time variables moved to new variable called x
BPM = data{2};% Readings moved to variable y
LED= data{3};

plot(Time,BPM, 'r'); % plot bp readings vs time

xlabel('Time of Reading');

ylabel('Blood Pressure Reading & Speed');

title('Blood Pressure Readings vs Time');

如果不想使用“散布”,可以这样做

LED = [1 3 4 2 2 3 3 3 3 1];
colors = ['r', 'g', 'b', 'y']; % A color for each LED
Time = [1:10];
BPM = [64 140 162 119 112 145 146 149 145 60];
figure; hold all;

i = 1;
j = 2;
last_LED = LED(i);
for j=2:numel(LED)
    if LED(j) ~= last_LED
        plot(Time(i:j), BPM(i:j), colors(last_LED));
        last_LED = LED(j);
        i = j;
    end
end

退房(例子做你想做的,只是把a,b,c,d做的转化为价值观)非常感谢你的工作。我只是做了一些调整,因为我将数据存储在一个数组中。现在我也遇到了在脚本中添加图例的问题。我做了这个图例('r','y','b','y');。但是,颜色不匹配的任何方式做这件事?