2014-03-28 107 views
0

我只是想知道如何在matlab圖像處理中使用randseed而不是randn隨機數字分佈

我想稍後使用x,y的質心來映射對象隨時間的位置。

此外,我可以使用什麼函數讓生成的值能夠這樣做?

clear all 

% Define image size 
N = 300; 

%define Initial object point 
X = 150; 
Y = 150; 

%Number of frames 
duration = 10; 

for T=1:duration 
    % Set up rand image. Process and measurement noise 
    Image = 0.4*rand(N); %distabunce 

    % Define object position & size 
    X = X+10*randn; 
    Y = Y+10*randn; 
    Size_radius = 5; 
    filter = BuildFilter(Size_radius); 

    for i = 1:N 
     for j = 1:N 
      if (sqrt((i-X).^2+(j-Y).^2) < Size_radius) 
       Image(i,j) = 1; 
      end 
     end 
    end 


    figure(1) 
    %subplot(2,2,1) 
    title('Caption1') 
    imagesc(Image); 
    colormap(gray); 
    axis image; 
    pause(0.1); 

end 
+2

什麼你想通過替換randn來實現嗎? – Daniel

+0

是的,所以我可以在模擬程序時使用相同的隨機數字,我被告知randseed會是最好的選擇 – user3473912

回答

0

你在哪裏顯然被要求寫一個可重現和確定性的模擬。要做到這一點,您需要手動配置種子。

  • 使用randstream而不是rand,爲模型的每個獨立部分使用一個流。
  • 使種子成爲運行配置的一部分,每次迭代一個種子。
  • 使用相同的種子多次運行您的模擬,它必須產生完全相同的結果(不是平均值,而是最後一位數字)。現在你的模擬是可重複和確定的。

我建議實施任何事情之前讀入正題: