2012-08-17 83 views
0

(我知道我问了很多关于这个问题!)大小,长度转换?

基本上,我想要一些代码从MATLAB转换为C++和我遇到这样的:

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

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

任何想法? (不要求代码)!

+0

告诉我这些东西是什么类型。 – 2012-08-17 03:38:00

+0

是什么? sum是矢量块的总和,尺寸我认为是矢量的尺寸,长度是矢量的长度? – Phorce 2012-08-17 03:41:03

+0

@Phorce'length'函数(这里没有提到)返回第一个非单实例维度的大小。 – paddy 2012-08-17 03:45:47

回答

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。基本上它给你在该阵列中的每个块的大小

2

在MatLab中,size返回矢量(或矩阵)的所有维度的向量。所以如果blocks是4x2矩阵,那么sum(size(blocks))将返回6。如果维数为2或更少,结果总是包含2个元素。 长度为5的列向量将返回[5 1],并且具有相同长度的行向量将返回[1 5]

看到sum(size(?))有点奇怪。通常你会看到prod而不是sum,它将所有维度放在一起。

无论如何,希望回答你的问题,以满意=)

+0

我有,一个二维数组中的元素600和每个块的数组中长度是1.那么结果是什么? arghh aha @paddy – Phorce 2012-08-17 03:45:27

+0

你的意思是'blocks'是一个单元阵列吗? – paddy 2012-08-17 03:47:30

+0

我相信如此..基本上存储1维矢量的二维矢量包含1个值。如果这有意义? – Phorce 2012-08-17 03:48:58