(私はこれについて多くの質問をすることを知っています!)
基本的に、Matlab から C++ にいくつかのコードを変換しようとしていますが、これに遭遇しました:
n = sum(size(blocks)) - len;
ベクトルの合計を計算し、長さを取得しましたが、「サイズ」が何を意味するのかわかりませんか? C++ では .size() はベクトルのサイズを返すためです。
何か案は?(コードを要求しません)!
MatLab ではsize
、ベクトル (または行列) のすべての次元のベクトルを返します。したがって、blocks
が 4x2 行列の場合、sum(size(blocks))
が返され6
ます。次元数が 2 以下の場合、結果には常に 2 つの要素が含まれます。 つまり、長さ 5 の列ベクトルが返さ[5 1]
れ、同じ長さの行ベクトルが返され[1 5]
ます。
見るのは少し奇妙sum(size(?))
です。多くの場合、すべての次元を乗算する のprod
代わりに表示されます。sum
とにかく、それがあなたの質問に満足して答えることを願っています=)
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 を返します。基本的に、その配列内の各ブロックのサイズが得られます