2012-08-17 78 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