2013-11-01 65 views
1

我想生成0.001和0.0015之間的隨機值,這樣每次運行for循環時,我都會得到一個新值。生成一個介於0.001和0.0015之間的隨機值

e.g

value = random number between 0.001 and 0.0015; 
for i = 1:10, 
    for value, 
     Calculate something... 
    end 
end 

任何一個可以告訴我該怎麼做?

+0

在這個答案採取戰利品http://stackoverflow.com/a/5289624/252591 - 它是C + +但它移植到MatLab應該是一件容易的事。 – Crozin

回答

5

這一切都寫入rand()功能的文檔中:http://www.mathworks.com/help/matlab/ref/rand.html

實施例1生成的 間隔從均勻分佈的值[A,B]:

r = a + (b-a).*rand(100,1); 

所以在您的案例a = 0.001b = 0.0015,您也可以將rand(100,1)更改爲rand(10,1),爲您提供區間[a,b]上有0個隨機值。

+0

其實他每次只需要一個,所以他總共需要10個。 –

+1

這是來自文檔的引用。我認爲每個人都應該能夠將這個解決方案適應10個值... – Daniel

4

這很簡單,你只需做到:

0.001+(rand()*(0.0015-0.001)) 
2

下面是你應該如何在我看來,那樣做:

myNumbers = rand(10,1)*0.0005+0.001; 
for value = myNumbers; 
    %Calculate something 
    value 
end 

需要注意的是這裏的主要改進是將預先計算所有的隨機值立刻。

此外,你可以直接循環它們。

+0

'0.0015-0.001 = 0.0005'不是'0.014' :) – jkshah

+1

@jkshah謝謝,已經更新了答案! –

相關問題