Generate specific shape randomly using MATLAB

8 ビュー (過去 30 日間)
Med Future
Med Future 2022 年 3 月 6 日
コメント済み: Image Analyst 2022 年 3 月 6 日
Hello every one, I hope you are doing well
i have the following code,in which i have two thing. first is the val in which i have the value like 200 is the value and it repeat 120 times to complete the shape.
I want to do it randomly , like the value generate randomly between 1 to 1000 and num is also randomly between 1 to 500 . How can i generate it in MATLAB
val = [200,500,800,1000,800,900,700,300,600,150];
num = [120,400,200,400,300,450,200,400,500,400];
out4 = repelem(val,num);
scatter(1:length(out4),out4)
  1 件のコメント
David Hill
David Hill 2022 年 3 月 6 日
Your explaination is not clear to me. A short example would be helpful.

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

回答 (2 件)

Image Analyst
Image Analyst 2022 年 3 月 6 日
To generate fractional random numbers use rand(). To generate random integers use randi().
randomDoubles = 999 * rand(1, length(val)) + 1; % Between 1 and 1000
randomIntegers = randi([1, 500], 1, length(num)); % Between 1 and 500
Not sure what else you need to know beyond that. If you need something else, be very explicit and specific.
  2 件のコメント
Med Future
Med Future 2022 年 3 月 6 日
Like the picture below . i want to generate this shape with random values .
Like i have the value 200,500 300.. first i generate a array of this random value .
then repeat the value with another random value like 200 repeat 120 times
Med Future
Med Future 2022 年 3 月 6 日
@David Hill @Image Analyst I have explain the problem above . I want to generate that kind of shape randomly . now i am manually doing it using above code.

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


Image Analyst
Image Analyst 2022 年 3 月 6 日
Try this:
val = unique(sort(20 * randi(50, 10, 1)))
for k = 1 : length(val)
y = val(k);
num1 = randi(3500);
num2 = randi(4000);
plot([num1, num2], [y, y], 'b.-', 'LineWidth', 5, 'markerSize', 20)
hold on;
end
grid on
  10 件のコメント
Med Future
Med Future 2022 年 3 月 6 日
@Image Analyst Sir thats wrong my whole array is zero .just one value is some nonzero digit.
Have you run my own code.
I will explain my code so you get idea
i have one value for example 200 which is repeated for some samples like 120 time.
after next value 500 which is repated 500 times,
I want this to be in random form.
Like i randomly picked first value for example 10. then it repeated random time between 500. and so on to make a full aray
Image Analyst
Image Analyst 2022 年 3 月 6 日
Sorry, I tried, but now I'm heading out now to do some errands. Once you take that 2 hour training you'll be able to do it yourself. It sounds like it's a simple application of calling rand() or randi() and then using a for loop, something you'll be able to do after taking the 2 hour training. Good luck.

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

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by