(我知道我对此提出了很多问题!)
基本上,我正在尝试将一些代码从Matlab转换为C ++,我遇到过这个问题:
n = sum(size(blocks)) - len;
现在我已计算出矢量的总和,而且我有长度,但我不知道“大小”的作用是什么?因为在C ++中.size()将返回向量的大小。
有什么想法吗? (不要求代码)!
答案 0 :(得分:2)
在MatLab中,size
返回向量(或矩阵)的所有维度的向量。因此,如果blocks
是4x2矩阵,则sum(size(blocks))
将返回6
。如果维数为2或更少,则结果始终包含2个元素。 ie 长度为5的列向量将返回[5 1]
,并且行长度相同的行向量将返回[1 5]
。
看sum(size(?))
有点奇怪。通常,您会看到prod
而不是sum
,它会将所有维度相乘。
无论如何,希望能回答你的问题满意=)
答案 1 :(得分: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。基本上它给出了该数组中每个块的大小