我正在尝试在表中填充一些值(1行n列)。 1和0必须在表格内,但必须位于随机位置,其余单元格必须是介于0和1之间的随机值。
例如,n = 4 P应该看起来像这样
P = 0.0000 0.58177 1.00000 0.86008
我所做的是:用1和0填充表中的前两个位置,其余n(如果n> 2)填充随机值[0,1]。欢迎提出任何解决我的代码的想法。
function P=pairwise_matrix(n)
P=zeros(1,n);
a = 0; b = 1;
x = a + (b-a) .* rand(1,1);
P(1,1)=1
if (n==1)
printf("not applicable")
endif
if (n==2)
P(1,1)=0
P(1,2)=1
endif
for (i=3:n)
P(1,i)=rand(x);
endfor
endfunction
我正在尝试在表中填充一些值(1行n列)。 1和0必须在表格内,但必须位于随机位置,其余单元格必须是介于0和1之间的随机值。例如,对于n = 4 P ...
首先用随机值填充向量,然后定义0
和1
]的两个随机位置
function P=pairwise_matrix(n)
if (n<3) n=3; endif
P=rand(1,n); # fill vector with random numbers
n0=floor(n*rand()); # random integer between 0 and n-1
n1=mod(n0+1+floor((n-1)*rand()),n); # random integer different from n0
P(n0+1)=0;
P(n1+1)=1;
endfunction