我在大小为n的matlab中创建一个只包含1和0的矩阵。最简单的方法是对大小为mxn的矩阵进行舍入(rand(m,n)),但在某些情况下,它会创建全部为零或全部为零的行。我想在每行的数量上加上下限和上限。有没有一种简单的方法可以做到这一点?
由于
答案 0 :(得分:3)
这仅适用于一列,但可以轻松扩展到矩阵:
v = zeros(m,1); % column
在列的开头填充至少40%和最多60%的列:
v(1: floor((0.4+(0.6-0.4)*rand())*(m+1))) = 1;
洗牌:
v = v(randperm(numel(v)));