3

matlab では、Mインデックスを使用して値を入力する行列をどのように作成できますか? たとえば、次のような3x3マトリックスを作成したいとします。M

M(i,j) = i+j --> [ 2 3 4; 3 4 5; 4 5 6]

ベクトルを作ってみました:x = 1:3'y = 1:3そして

M = x(:) + y(:)

しかし、期待どおりには機能しませんでした。

これを行う方法について何か考えはありますか?

ありがとう!

アップデート

M私が実際に望んでいるのは:

M(i,j) = -2^(-i - j).
4

3 に答える 3

2

bsxfun合計を見つけるために使用する必要があります。

M=bsxfun(@plus, (1:3).', 1:3)

そして2番目の式について:

M=-2.^(-bsxfun(@plus, (1:3).', 1:3))
于 2013-10-20T18:28:57.380 に答える
2

1つの方法は

x = 1:3;
z = ones(1,3);
N  = z'*x + x'*z
M  = -2 .^ -(z'*x + x'*z)
% Or simply 
% M = -2 .^ -N

出力:

N =

   2   3   4
   3   4   5
   4   5   6

M =

  -0.250000  -0.125000  -0.062500
  -0.125000  -0.062500  -0.031250
  -0.062500  -0.031250  -0.015625
于 2013-10-20T18:39:56.527 に答える
1

bsxfun(@(x,y)(-2.^(-x-y)), (1:3).', 1:3)

これは、モーセン・ノスラティニアの答えをあなたが望む機能で使用します。

于 2013-10-20T18:50:24.357 に答える