writing a loop for differences of random numbers.
1 回表示 (過去 30 日間)
古いコメントを表示
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
0 件のコメント
回答 (1 件)
Mikhail
2014 年 10 月 24 日
編集済み: Mikhail
2014 年 10 月 24 日
%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
2014 年 10 月 24 日
Also there is much faster way to generate those numbers, without for loop:
b=rand(1000,1);
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.
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!