作业帮 > 综合 > 作业

matlab怎样产生0/1矩阵,每行和为p(p为参数)?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 13:57:38
matlab怎样产生0/1矩阵,每行和为p(p为参数)?
矩阵的行和列都是参数,p也为参数.我只会用循环做,但是太影响运行速度了,
function R = my_getmat(m,n,p)
% m: 行数
% n: 列数
% p: 行总和
R = [];
if p > m
return;
end;
if p == 0
a = [];
b = ones(1,m);
else
a = ones(1,p);
b = zeros(1,m-p);
end;
c = [a b];
x = size(c,2);
for k = 1:m
R(k,:) = c(randperm(x));
end;