【发布时间】:2015-03-12 15:37:26
【问题描述】:
在 Matlab 中,我试图实现以下目标:
我有一个数据集,该数据集在生物学上代表给予刺激时大脑中的激活。所以数据是这样的,我们有 9 个刺激的数据点,然后是 15 个休息的数据点,它继续像这样持续大约 300 个数据点(实时 4 分钟)。
我能够轻松地绘制数据,但我试图覆盖一个方波,它表示存在“刺激”的时间,这样只需查看图表就可以很容易地看出哪个是休息期和哪个刺激。
非常简单,我创建了一个向量 X 并使其(前 3 个点应为 0)
X = [0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0]
并将其绘制在与数据相同的图表上。它工作正常,但问题是我需要根据我的时间尺度自动创建 X。
Total_time = [-3:1.5:302]
这是我的总时间范围,从 -3 到 302 秒,采样率为 1.5 秒。前 3 分 -3、-1.5、0 是休息时间。然后从 0 秒开始,刺激开始大约 9 秒(这将在 9 秒期间产生 6 个数据点)。
所以我的问题是 - 是否可以使用某种 for 循环来创建这个向量 X 来表示来自 0 X = 1 和下一个 10 X = 0 的 6 个数据点?我在想以下几点:
X = zeros(1,304) %to create a 1x304 vector of zeros
X(0:3)=0
X(3:9)=1
X(9:19)=0
但话又说回来..这是手写的。
谁能帮忙?
谢谢!
【问题讨论】:
标签: matlab for-loop vector plot matlab-figure