尺寸,长度转换?

时间:2012-08-17 03:35:14

标签: c++ matlab

(我知道我对此提出了很多问题!)

基本上,我正在尝试将一些代码从Matlab转换为C ++,我遇到过这个问题:

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

现在我已计算出矢量的总和,而且我有长度,但我不知道“大小”的作用是什么?因为在C ++中.size()将返回向量的大小。

有什么想法吗? (不要求代码)!

2 个答案:

答案 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。基本上它给出了该数组中每个块的大小