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 回答