2016-08-16 13 views
0

私は列ベクトルAを持っています。 Aがスカラーであるとき、私はそうベクトルからの行列生成

B = A-m:n:A+p 

のようなベクトルを生成するために、コロン演算子を使用することができますしかし、私は何をしたい異なります。私は、結果Bは、そう見えるようにしたい、私は-m:n:prepmatを使用することによって、これを達成することができます知っている

[A-m, A-m+1 ... A ... , A+n-1, A+n] 

は、元A行列を追加bsxfunと続きます。

もっと直接的な方法はありますか?

+1

だから、 'bsxfun(@ plus、A、[ - m:1:n])'をしたいですか?私はあなたの事例に混乱しています。 – beaker

答えて

0

あなただけ列ベクトル Vの一握りのインスタンスをコピーしたい場合、あなたは常に

B = [v, v, v, ... v]; 

または行ベクトルのため

B = [v ; v ; v ; ... v]; 
0

を使用することができる一つの簡単なベクトル化の方法はこれです:

NewMatrix = diag(A)*ones(length(A),m+n+1) + ones(length(A),m+n+1)*diag(-m:1:n) 
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 
関連する問題