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

回答 (1 件)

Mikhail
Mikhail 2014 年 10 月 24 日
編集済み: Mikhail 2014 年 10 月 24 日

0 投票

%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 件のコメント

Mikhail
Mikhail 2014 年 10 月 24 日
Also there is much faster way to generate those numbers, without for loop:
b=rand(1000,1);
John D'Errico
John D'Errico 2014 年 10 月 24 日
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.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索

タグ

質問済み:

2014 年 10 月 24 日

コメント済み:

2014 年 10 月 24 日

Community Treasure Hunt

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

Start Hunting!

Translated by