フィルターのクリア

How do i create an array with a for loop?

3 ビュー (過去 30 日間)
Brendan Querey
Brendan Querey 2020 年 11 月 17 日
コメント済み: Walter Roberson 2020 年 11 月 17 日
I'm trying to create a an array of ten numbers randomly generate from a normal distribution, and I also need the initial number to not have the same function as the remaining 9.
P_t = normrnd(72.7,7.6);
p_t = normrnd(12.6,3.9);
price = zeros(10:1);
for n = 1:10
if n == 1
price(n) = P_t;
else
price(n) = .8 * P_t + p_t;
end
end

採用された回答

Walter Roberson
Walter Roberson 2020 年 11 月 17 日
編集済み: Walter Roberson 2020 年 11 月 17 日
P_t = @() normrnd(72.7,7.6);
p_t = @() normrnd(12.6,3.9);
price = zeros(10,1);
for n = 1:10
if n == 1
price(n) = P_t();
else
price(n) = .8 * P_t() + p_t();
end
end
  2 件のコメント
Brendan Querey
Brendan Querey 2020 年 11 月 17 日
what does @() do?
Walter Roberson
Walter Roberson 2020 年 11 月 17 日
@() introduces the definition of an anonymous function that does not expect any parameters.
In the above code, each time P_t() is encountered, it would execute the function body, normrnd(72.7,7.6) , generating a new random number with the given distribution.
The code you were using was generating one single random number from each of the two distributions, and then using that same number for each iteration.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeRandom Number Generation についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by