0

(私はこれについて多くの質問をすることを知っています!)

基本的に、Matlab から C++ にいくつかのコードを変換しようとしていますが、これに遭遇しました:

n = sum(size(blocks)) - len;

ベクトルの合計を計算し、長さを取得しましたが、「サイズ」が何を意味するのかわかりませんか? C++ では .size() はベクトルのサイズを返すためです。

何か案は?(コードを要求しません)!

4

2 に答える 2

2

MatLab ではsize、ベクトル (または行列) のすべての次元のベクトルを返します。したがって、blocksが 4x2 行列の場合、sum(size(blocks))が返され6ます。次元数が 2 以下の場合、結果には常に 2 つの要素が含まれます。 つまり、長さ 5 の列ベクトルが返さ[5 1]れ、同じ長さの行ベクトルが返され[1 5]ます。

見るのは少し奇妙sum(size(?))です。多くの場合、すべての次元を乗算する のprod代わりに表示されます。sum

とにかく、それがあなたの質問に満足して答えることを願っています=)

于 2012-08-17T03:42:12.670 に答える
1
d = size(X) return the sizes of each dimension of array X in a vector d. 

あなたが持っていると言わないようにd = size(rand(2,3,4))、これは d = 2 3 4 を返します。基本的に、その配列内の各ブロックのサイズが得られます

于 2012-08-17T03:41:33.047 に答える