nof*_*lly 5 matlab vector range
我有一个向量A,我希望尽可能均匀地填充值.例如,如果A是1x30并且我想使用三个值,我将使用如下代码:
% A = zeros(1,30);
A([1:10])=0;
A([11:20])=1;
A([21:30])=2;
Run Code Online (Sandbox Code Playgroud)
这有效,但对我来说似乎有点麻烦.有没有更优雅的方法来均匀(尽可能)在向量中分配指定范围的值?我打算将每个值保存在"丛"中.
提前谢谢你.
假设您希望将值[5 2 6]
尽可能均匀地分布在长度为 8 的向量上。那么您可以使用linspace
以下方式:
vals = [5 2 6];
vecLength = 8;
nVals = length(vals);
idx = floor(linspace(1,nVals+1-2*eps(nVals),vecLength));
out = vals(idx)
out =
5 5 5 2 2 6 6 6
Run Code Online (Sandbox Code Playgroud)