从MATLAB中的二进制向量(0,1)中选择1个值中的前n个

use*_*750 3 matlab vector

我有一个二进制向量,例如:

x = [1 1 1 0 0 1 0 1 0 0 0 1]
Run Code Online (Sandbox Code Playgroud)

我想保留前4个元素为'1'(用'0'替换其余元素).在我的例子中,结果向量应该是:

z = [ 1 1 1 0 0 1 0 0 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.

Eit*_*n T 5

首先构造一个零向量,然后使用find:

z = false(size(x));
z(find(x, 4)) = true;
Run Code Online (Sandbox Code Playgroud)