2016-11-26 1 views

Répondre

2

est ici une approche utilisant bsxfun -

r = (1-a).^(0:N-1) 
out = tril(bsxfun(@rdivide,r.',r)) 

run Exemple -

>> a = 1/2; 
>> N = 5; 
>> r = (1-a).^(0:N-1); 
>> tril(bsxfun(@rdivide,r.',r)) 
ans = 
      1   0   0   0   0 
      0.5   1   0   0   0 
     0.25   0.5   1   0   0 
     0.125   0.25   0.5   1   0 
     0.0625  0.125   0.25   0.5   1 

Sur la version de Matlab partir avec la diffusion automatique, la dernière étape serait -

out = tril(r.'./r)