我有一个列向量A
。当A
是标量时,我可以使用冒号运算符生成类似的向量
B = A-m:n:A+p
然而,我想要做的是与众不同。我希望结果B看起来像这样,
[A-m, A-m+1 ... A ... , A+n-1, A+n]
我知道我可以在repmat
上使用-m:n:p
,然后使用原始bsxfun
矩阵添加A
来完成此操作。
有更直接的方法吗?
答案 0 :(得分:0)
如果您只想复制少数列向量 v的实例,可以随时使用
B = [v, v, v, ... v];
或行向量
B = [v ; v ; v ; ... v];
答案 1 :(得分:0)
一种简单的矢量化方式是:
NewMatrix = diag(A)*ones(length(A),m+n+1) + ones(length(A),m+n+1)*diag(-m:1:n)
答案 2 :(得分:0)
不是单行......
>> a=[1;2];
>> r=3:2:10;
>> repmat(a,1,size(r,2))+repmat(r,size(a,1),1)
ans =
4 6 8 10
5 7 9 11