Распределение заданного значения по заданной длине массива - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть number 27.50.Я хочу распространить его в массиве Result, размер которого равен 2000. Распределение 27.50 в массиве Result должно начинаться с 1 и заканчиваться на 27.50.

number = 27.50;
Size = 2000;
Result = zeros(Size ,1);

Я хочу, чтобы оно распространялосьэто так, что когда я делаю cumsum из Result, итоговый индекс будет иметь 27,50, а когда я * sum из Result, он будет равен 27,50.

ОжидаетсяРезультат:

tmp = cumsum(Result)
tmp(end) == 27.50 

sum(Result) == 27.50

Вопрос:

Есть ли способ сделать это?Если да, пожалуйста, посоветуйте, какой метод мне использовать *

1 Ответ

0 голосов
/ 11 декабря 2018

Полагаю, вы можете сделать это разными способами.

Как уже упоминалось @ rahnema1, вы можете использовать равномерное распределение:

repmat(number/Size ,Size ,1)

Или вы также можете использовать гауссиан:

normcdf(0:Size,1000,100) %choose the parameters yo want

Или любой другой дистрибутив, который вы хотите.

Ключевым моментом является то, что вы должны нормализовать свой дистрибутив таким образом, чтобы сумма под ним равнялась значению, которое вы хотите: 27.50 в вашемслучай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...