我有一个数组
X =
10
5 (e)
20
5
30
6
40
4
50
3
60
8
70
12
依旧......
我已经知道我称之为e的值5。我也知道它在阵列中的位置。我想要以下内容:
相应的X(1:2:结束)到我们在范围内找到的值。这意味着Y的最终答案应该是:
Y =
10
5
20
5
30
6
40
4
50
3
60
8
非常感谢!
答案 0 :(得分:0)
在MATLAB / Octave中,您可以使用函数find找到非零元素的索引。将find
与逻辑运算符结合起来很容易解决您的问题:
Y = X(find(X <= X(2)+3 & X >= X(2)-3));
说明:
e = X(2)
X <= e+3 % Produces a Matrix with the element-wise result (1 or 0). The
X >= e-3 % values are determined by the logic operators >= and <=.
find(X) % Returns a matrix with the indeces of non-zero elements of X.
X(find(X)) % Returns the non-zero elements.
在Octave中测试过(虽然也应该在MATLAB中工作)。