MATLAB:添加向量元素直到达到特定数字

时间:2015-04-18 04:58:24

标签: matlab loops

我的课本中遇到了一个问题。问题是确定加起来20(或更多)所需的随机数的数量。 我在这种情况下使用循环。我不确定下面的代码。

a=rand(1000,1)
count =1 
for(a=rand(1000,1))
   count = count + 1 
   sum(a((count),1))
   if sum(a(count),1)>20
       break 
   end
end

我想要做的是将该向量中的元素添加到20或更多。

2 个答案:

答案 0 :(得分:2)

此选项使用低内存

a = rand(1000,1);
Limit = 20;
Acu = 0;
N = 1;
while Acu < Limit
    Acu = Acu + a(N, 1);
    N = N +1;
end
disp(N-1);

答案 1 :(得分:1)

MATLAB中一个简单的方法是创建一个足够长的随机列表,其总和远大于你的限制,然后对其运行cumsum函数以累加求和向量,然后选择基于求和向量中的值的原始随机向量的最低元素。

limit = 20;

randnums = rand(1, limit*10);  % Create a sufficiently long vector of random numbers
sumnums = cumsum(randnums);    % Compute the cumulative sum of the random vector
limitedrandnums = randnums(sumnums<=limit);  % Select the values from the random vector based on the sum

disp(limitedrandnums);
disp(sum(limitedrandnums));