在matlab中怎么产生一个m*n矩阵使每列之和为1 ?
在matlab中怎么产生一个m*n矩阵使每列之和为1 ?
% function num=randn(min_n,max_n,m,n) %思路: %对于某一列,先产生该列第一个随机数a,其范围为[min_n,max_n] %然后产生该列第二个随机数b,其范围为[min_n,max_n-a] %之后产生该列第三个随机数c,其范围为[min_n,max_n-a-b] %终止条件为max_n-a-bmin_n%随机数产生的终止条件 num(j,i)=floor(min_n+(max_n-sum(num(1:j,i)))*rand);%产生随机数 end end end
答:你创建一个随机矩阵:它的每行每列都只有一个位置为1,其余为0 a=eye(5) b=randperm(5) c=a(:,b) 这样c就满足要求。 创建一个矩阵只...详情>>
答:的意思是找不到指定的文件,你确定你的文件路径正确吗? 另外,调用的部分你用 n(shcmd)试试详情>>