【发布时间】:2014-03-28 00:48:47
【问题描述】:
我有来自不同实验的数据,按列堆叠。其中一列是实验编号,另一列是我应该分析的数据。
从数据到分析,我只需要参与其中,对于单个实验,我知道我应该从哪里开始以及应该在哪里结束的索引。如果我的数据是否用于分析,我想创建一个逻辑向量。
举个例子:
a = [8 8 8 6 6 6 8 8 8 8 8 5 5 5 5 8 8 ]';
b = [2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3]';
是向量a 和我需要的数据,b 是实验编号。
我需要完成:
logicalINeed = [0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 ];
dataFroAnalysis = a(logicalINeed==1)'
给出输出:
dataFroAnalysis =
6 6 6 5 5 5 5
我知道每个实验的索引,但不知道完整的堆积列:
b2_lower = 3; % index where analysis should start
b2_upper = 5; % index where analysis should end
b3_lower = 4;
b3_upper = 7;
我想简单地创建零并在范围内更改为一
c = zeros([length(a),1]);
c(b==2(b2_lower:b2_upper)) = 1;
c(b==3(b3_lower:b3_upper)) = 1;
显然这不能正常工作。我尝试实现 for 循环,但完成了许多计数器并且根本没有效率。原始数据是超过 100.000 个条目,包含 50000 次不同的实验。
有没有一种简单的索引方法可以做到这一点?
【问题讨论】: