2

1つの簡単な質問..

Matlab に変数があるとしましょう: numEntries = 8

「1の行列」を作成するために「1」が使用されることは知っていますが、次の結果はどうなりますか?

W = ones(1:numEntries);

そして、可能であれば、Matlab の行列に関する適切なリファレンスはどこにありますか? 公式ドキュメントを見ましたが、あまり明確ではありません。

どうもありがとうございました

4

2 に答える 2

3

ones1 の行列を作成します。ones任意の数の次元で機能しますが、引数を 1 つだけ指定すると、そのサイズの 1 の正方行列が得られます。それ以外の場合は、 に与える引数の数である1 のN次元行列が得られます。Nones

numEntriesが 8 の場合1:numEntries、1x8 ベクトルを作成します1 2 3 4 5 6 7 8。このベクトルが への入力として与えられるとones、1 の 8 次元行列が得られます。1 次元 (垂直) のサイズは 1、2 次元 (水平) のサイズは 2、3 次元のサイズは3 など、サイズが 8 の 8 次元まで続きます。

numEntries = 8;

W = ones(1:numEntries);

% の各次元のサイズを確認するにはW:

size(W)

ans =
1     2     3     4     5     6     7     8

% の要素の総数を計算するにはW:

prod(size(W))

ans =
    40320

%編集:の要素数を取得するにはWnumel(W)よりも高速ですprod(size(W)):

numel(W)

ans =
    40320
于 2012-05-04T22:35:56.550 に答える
1

これは ND ( -N次元) 配列で、N = numEntries.

より具体的には、1 x 2 x ... x Nすべて 1 で満たされたサイズの ND 配列です。

于 2012-05-04T22:33:09.450 に答える