1つの簡単な質問..
Matlab に変数があるとしましょう: numEntries = 8
「1の行列」を作成するために「1」が使用されることは知っていますが、次の結果はどうなりますか?
W = ones(1:numEntries);
そして、可能であれば、Matlab の行列に関する適切なリファレンスはどこにありますか? 公式ドキュメントを見ましたが、あまり明確ではありません。
どうもありがとうございました
ones
1 の行列を作成します。ones
任意の数の次元で機能しますが、引数を 1 つだけ指定すると、そのサイズの 1 の正方行列が得られます。それ以外の場合は、 に与える引数の数である1 のN
次元行列が得られます。N
ones
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
%編集:の要素数を取得するにはW
、numel(W)
よりも高速ですprod(size(W))
:
numel(W)
ans =
40320
これは ND ( -N
次元) 配列で、N = numEntries
.
より具体的には、1 x 2 x ... x N
すべて 1 で満たされたサイズの ND 配列です。