在matlab中生成十进制值

Generating decimal values in matlab

如何生成一个包含 5 个十进制值的向量,使得它们的总和为 10。

for i=1:5
   d(i)=rand;
end

1)我知道这会生成向量,但如何包含条件? 2) 我也可以生成负数吗?

 d = rand(5,1);
 d = d * 10 / sum(d);