Adding to an array with constraints

I have a vector A = [0.2 0.3 0.1 0.3 0.4 0.0]
and i will add a random number to the minimum number of vector A which is here 0. But i have a constraint that the sum of every 2 consecutive numbers can't exceed 0.5 and if the random number which is added made it exceed the 0.5 then add another random number untill the condition is satidfied

2 件のコメント

Image Analyst
Image Analyst 2016 年 7 月 25 日
A robust solution would require you to specify the range of the input values in A, and the range of the random numbers. Otherwise, just add random numbers between minus 2 billion and minus 1 billion to your array and that will most likely work, at least for the A you have here.
sasso samer
sasso samer 2016 年 7 月 25 日
rand(0,10)/100

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

回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 7 月 25 日

0 投票

A=[0.2 0 0.3 0.1 0.3 0.4 0.0]
B=[eps a eps]
idx=find(B==0)
for k=idx
c=max(B(idx-1),B(idx+1))
A(idx-1)=(0.5-c)*rand
end

カテゴリ

ヘルプ センター および File ExchangeRandom Number Generation についてさらに検索

質問済み:

2016 年 7 月 25 日

コメント済み:

2016 年 7 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by