@natan (+1) の回答に追加するには、次のコードを実行します。
%# Store the seed
Rng1 = rng;
%# Get a matrix of random numbers
X = rand(3, 3);
%# Restore the seed
rng(Rng1);
%# Get a matrix of random numbers one vector at a time
Y = nan(3, 3);
for n = 1:3
Y(:, n) = rand(3, 1);
end
%# Test for differences
if any(any(X - Y ~= 0)); disp('Error'); end;
X
と の間に違いはないことに注意してくださいY
。つまり、1 つのステップで行列を作成することと、一連のベクトルから行列を作成することに違いはありません。
ただし、私のコードとあなたのコードには違いがあります。rand
を使用して 1 つのステップでマトリックスを作成すると、列ごとに入力されるため、行ではなく列でマトリックスに入力することに注意してください。ところで、お気づきかどうかわかりませんが、原則として、行ではなく行列の列に対して常にベクトル演算を実行するようにしてください。先日、SO に関する質問への回答で理由を説明しました。詳しくはこちらをご覧ください...
独立/依存の問題に関しては、使用する言語に注意する必要があります。によって生成される数列rand
は完全に依存しています。大部分の統計テストでは、それらは独立しているように見えますが、理論的には、 によって生成された数列間の依存関係を示す統計テストを構築できrand
ます。
最後に、Greene の「Econometric Analysis」のコピーを持っている場合、彼はセクション 17.2 で乱数生成についてきちんと説明しています。