Suppose an index vector in binary like below

Input

1 1 0 0 1 0 1

1 2 3 4 5 6 7

Intended output

1 2 5 7

which denotes nth number to be chosen. So I want to change 1 1 0 0 1 0 1 to 1 2 5 7, is there some easy way for this?

有帮助吗?

解决方案 2

The solution is using the function find(indicesBinary)

其他提示

If you actually want to use your output to index another vector, do it directly.

You just need to transform your binary vector to logical

A = [1 1 0 0 1 0 1];    %assuming its double
B = [1 2 3 4 5 6 7];

C = B( logical(A) )

C =

     1     2     5     7
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top