writing a loop for differences of random numbers.

hello, i needed to write a loop to create a vector of 1000 random numbers. then from there i needed to create a loop to subtract every random number, by ever other random number. basically generating a 1000x1000 vector. however i am lost at how to go about it. here is my code so far.
for i= 1:1000
b(i) =rand;
end
for i =1:1000,
c =b(i) - b(1:1000);
end

Réponses (1)

Mikhail
Mikhail le 24 Oct 2014
Modifié(e) : Mikhail le 24 Oct 2014

0 votes

%Generate: for i= 1:1000
b(i) =rand;
end
%Subtract:
c=zeros(1000,1000)
for i =1:1000
c(i,:)=b-b(i);
end
So in matrix c: c(i,j)=b(j)-b(i)

2 commentaires

Mikhail
Mikhail le 24 Oct 2014
Also there is much faster way to generate those numbers, without for loop:
b=rand(1000,1);
Of course, IF you were to generate the numbers in a vectorized form, it would also be far more efficient to use bsxfun to do the entire computation in two lines.
b = rand(1000,1);
c = bsxfun(@minus,b,b');
This of course, is the power of MATLAB, that explicit loops are not needed for simple computations like this.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Tags

Question posée :

le 24 Oct 2014

Commenté :

le 24 Oct 2014

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by