我有来自不同实验的数据,堆积在列中。其中一列是实验编号,另一列是我应该分析的数据。带有嵌套切片的matlab矢量索引
从数据到分析我只需要一部分,对于单个实验我知道一个索引,我应该从哪里开始,在哪里完成。如果我的数据用于分析,我想创建一个逻辑向量。
作为一个例子:
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
与数据I需要,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;
我想简单地创建零,如果在范围内则更改为1
c = zeros([length(a),1]);
c(b==2(b2_lower:b2_upper)) = 1;
c(b==3(b3_lower:b3_upper)) = 1;
显然这不起作用,因为它应该。我尝试实现循环,但完成了很多计数器并且完全没有效率。原始数据超过100.000个条目,进行500次不同的实验。
有没有简单的索引方式来做到这一点?
谢谢。我给矢量一个例子的目的,只是为了简单,它有这三个值。我的目标是仅基于向量b和索引bn_lower,bn_upper上的值来获取逻辑向量。在原始问题中,我无法对a的值进行索引。 – tomasz74