1

2 つのベクトルX=[x0,x1,x2]; Y=[y0,y1]; があるとします。Matlab には、2x3 行列 Z=f(X,Y) を生成できる単一のコマンドが存在しZ=[x0+y0, x1+y0, x2+y0; x0+y1, x1+y1, x2+y1]ますか?

前もって感謝します。

4

4 に答える 4

1

次のものも使用できますndgrid

[xx yy] = ndgrid(Y,X);
Z = xx+yy;

そして、次のように悪用kronされる可能性があります (ただし、内部kron的には基本的に のバリエーションを使用することに注意してくださいndgrid):

Z = log(kron(exp(X),exp(Y).'));
于 2014-06-25T09:18:24.730 に答える
1

これを試して

Z = repmat(X,numel(Y),1) + repmat(Y',1,numel(X));
于 2014-06-25T03:22:08.683 に答える
0

Nishant anwser の代わりに kron を使用します:

   %for example
   X=[1,2,3]; Y=[1,2]
   Z = kron(X, ones(numel(Y), 1)) +  kron(ones(1, numel(X)), Y'); 

Z =

     2     3     4
     3     4     5

これがあなたに合っているなら、関数を定義することができます:

% skron for sum kron
skron = @(X,Y) kron(X, ones(numel(Y), 1)) +  kron(ones(1, numel(X)), Y');

Z = skron(X,Y);
于 2014-06-25T03:33:56.810 に答える