better method for evaluating matrix
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
For given vector such as following, I want to make square matrix s such that
%constant, original form
N = 500;
x = 2*pi*linspace(0,1,N);
for i = 1:N
 for j = 1:N
  s(i,j) = sin(x(i)-x(j))
 end
end
But it was too slow, so recently I edited it to following, but it's still too slow!!
Can anybody please help me??
 %constant
 N = 500;
 x = 2*pi*linspace(0,1,N);
 for i = 1: N;
   s(:,i) = x-x(i);
 end
 s=sin(s);
0 Commenti
Risposta accettata
Più risposte (1)
  Andrei Bobrov
      
      
 il 21 Nov 2017
        
      Modificato: Andrei Bobrov
      
      
 il 21 Nov 2017
  
      N = 500;
x = 2*pi*linspace(0,1,N);
s = sin(x(:)' - x(:));
for old versions of MATLAB:
s = sin(  bsxfun(@minus, x(:)',x(:)) );
1 Commento
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

