How can i generate data randomly in MATLAB
Mostrar comentarios más antiguos
Hello Everyone, I hope you are doing well
I have the following code. which generate 5 level of different values.as you can see in plot
I want to generate random level upto 32 for random value from 1 to 1000
How can i do that in matlab
VALUE = [100 300 600 700 1000 ];
out2 = repmat(VALUE,1,ceil(4000/numel(VALUE)));
scatter(1:length(out2),out2)
1 comentario
KSSV
el 4 de Mzo. de 2022
What do you mean by upto 32?
Respuestas (1)
try this:
VALUE=1:(1000-1)/31:1000
out2 = repmat(VALUE,1,ceil(4000/numel(VALUE)));
scatter(1:length(out2),out2);
14 comentarios
Med Future
el 4 de Mzo. de 2022
Med Future
el 4 de Mzo. de 2022
KSSV
el 4 de Mzo. de 2022
level=randi(5, 1, 3);
out2 = cell([],1) ;
for i = 1:length(level)
prf = rand(1,level(i))*1000;
out2{i} = repmat(prf,1,ceil(1000/numel(prf)));
end
Med Future
el 4 de Mzo. de 2022
I suspect more like
VALUE = sort(randi([100 1000], 1, 32));
out2 = repmat(VALUE,1,ceil(4000/numel(VALUE)));
scatter(1:length(out2),out2);
Med Future
el 4 de Mzo. de 2022
Med Future
el 4 de Mzo. de 2022
Editada: Med Future
el 4 de Mzo. de 2022
Med Future
el 4 de Mzo. de 2022
Walter Roberson
el 4 de Mzo. de 2022
Your code asked for ceil(4000/32) each, not 1000 each. And the code I posted would not create a different number for each value.
Med Future
el 4 de Mzo. de 2022
Med Future
el 4 de Mzo. de 2022
Walter Roberson
el 6 de Mzo. de 2022
You cannot do that using repmat. For example if 17 were generated for level you would be asking what integer number of copies of 17 elements can you take to get exactly 1000. And you just cannot do that, as 17 does not divide exactly into 1000. But you can use the out that you are currently generating with that code and take the first 1000 entries using indexing.
Med Future
el 6 de Mzo. de 2022
level = 17; %randi([2 32], 1, 100);
[M,N]=size(level);
for j = 1:size(level,2)
prf=randi([1 1000], 1,level(j));
size(prf)
out = repmat(prf,1,ceil(1000/numel(prf)))
whos
end
Notice that out is length 1003. You cannot reshape() 1003 into 1000.
What you can do is
out = out(1:1000);
and you could reshape() that
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

