2014-12-01 55 views
-1

我正在尋找一種方法來選擇具有最大總和的向量。有沒有一個簡單的方法來做到這一點?我正在考慮編寫一個循環,但我不確定如何遍歷一組向量。選擇總和最大的向量Matlab

感謝您的幫助!

+0

我猜矢量都具有相同數量的元素?您的數據如何組織?例如,他們是一組矢量組成一個大矩陣的矢量個體嗎? – 2014-12-01 19:12:40

+0

是的,他們這樣做,我想我可以從它們中創建一個矩陣,並在矩陣中找到最大和的行,但我不確定這會更容易 – Lia 2014-12-01 19:14:38

回答

1

對於向量具有相同長度的情況(如註釋中所述),我認爲一個簡單的無循環方法是從每個向量構建一個矩陣並直接獲取行(或列)最大的總和:

clear 
clc 

RandMat = rand(8,10); 

[~,Ind] = max(sum(RandMat,2)); %// Get row index for largest sum. If you want the column, use 1 instead. 
MaxRow = RandMat(Ind,:); %// Index in original matrix to get the vector. If you want the column, use RandMat(:,Ind); 

如果載體不具有相同的長度,那麼你就需要墊楠缺失值,例如使用常規的矩陣,否則你將需要一個單元陣列。

如果您更喜歡不需要構建矩陣的解決方案,那麼您可以遍歷每個單獨的向量並將總和存儲在變量中,然後比較最後的總和。如果您想要這樣的解決方案,請詢問!

+0

@Lia所以這個答案可以幫助你解決你的問題問題還是需要額外的幫助? – 2014-12-02 20:08:44