2014-03-28 68 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,为模型的每个独立部分使用一个流。
  • 使种子成为运行配置的一部分,每次迭代一个种子。
  • 使用相同的种子多次运行您的模拟,它必须产生完全相同的结果(不是平均值,而是最后一位数字)。现在你的模拟是可重复和确定的。

我建议实施任何事情之前读入正题: