Filter löschen
Filter löschen

How do i create an array with a for loop?

3 Ansichten (letzte 30 Tage)
Brendan Querey
Brendan Querey am 17 Nov. 2020
Kommentiert: Walter Roberson am 17 Nov. 2020
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

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 17 Nov. 2020
Bearbeitet: Walter Roberson am 17 Nov. 2020
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 Kommentare
Brendan Querey
Brendan Querey am 17 Nov. 2020
what does @() do?
Walter Roberson
Walter Roberson am 17 Nov. 2020
@() 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Random Number Generation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by