Error using rand Size inputs must be scalar.

Hi, I am trying to use rand , but Im getting erros Size inputs must be scalar.
I am almost new at matlab and was wonder how to fix that problem
D = 2 ;
g =1000;
sigma = 1;
for i=1:g
r = rand(0,sigma^2,[D 1]);
%...
end

 Respuesta aceptada

Walter Roberson
Walter Roberson el 25 de Feb. de 2019

1 voto

When you talk about sigma^2 you are talking about normal distribution (typically) not uniform distribution such as rand() produces.
I suspect you want to call normrnd() rather than rand() .

3 comentarios

Cesar Ramirez
Cesar Ramirez el 25 de Feb. de 2019
Thanks so much!. It worked.
But now I cant make xh equal to r and xp. Matrix dimensions must agree
xp = xl+(xu-xl).*rand(0,1) ;
xh = xp + r;
rand(0,1) means that you want an array with 0 rows and 1 columns .
Perhaps you want normrnd(0,1) ?
The code lines you are using are like what you would use to create a uniform random number in the range xl to xu . If you want to do that once for each member of r, then
xp = xl + (xu-xl) .* rand(size(r));
xh = xp + r;
Cesar Ramirez
Cesar Ramirez el 25 de Feb. de 2019
Thanks again ! haha

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Productos

Versión

R2017b

Preguntada:

el 25 de Feb. de 2019

Comentada:

el 25 de Feb. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by