八度:在表格内的随机单元格中填充特定值

问题描述 投票:0回答:1

我正在尝试在表中填充一些值(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 ...

random octave
1个回答
0
投票

首先用随机值填充向量,然后定义01]的两个随机位置

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
© www.soinside.com 2019 - 2024. All rights reserved.