2017-09-28 321 views
0

如果我有陣列如方陣:如何獲得第一值的平均值在陣列矩陣中在Matlab

[1,2],[2,3]

[5,1 9],[1,4]

我想要得到的第一值的平均值中的每一行這樣的陣列:

1.5

這是可能的Matlab? 我用平均值(矩陣,2)命令來做到這一點與單個值的矩陣,但我不知道如何擴大這個來處理數組。

+5

是您的矩陣中的3D矩陣使用這些值作爲片?你的符號很混亂。請使用實際的MATLAB語法來表達您的矩陣。 – rayryeng

回答

0

您可以在平均函數內應用平均函數來獲取索引1處二維數組的總平均值。您可以在索引2處使用數組進行類似操作。請考慮以下快照。

+5

有實際的文字而不是快照更有用。 – rayryeng

+2

這不是他想要的結果 – Adiel

1

獲取矩陣的所有陣列的第一要素,然後調用mean功能

mean(matrix(:,:,1)) 

也許你需要調用之前重塑mean

a = matrix(:,:,1); 
mean(a(:)) 
+0

儘管這個問題更好地回答了這個問題,但這都是猜測。我們對矩陣的實際形狀或格式沒有深入的瞭解,所以當OP決定編輯他的問題時,這個答案可能並不正確,儘管我懷疑他永遠不會回來。 – rayryeng

0

你的問題凝視了很久之後時間,它看起來像你的輸入是一個3D矩陣,其中你的格式的每一行對應於一個2D矩陣切片。因此,在適當的MATLAB語法,你的矩陣居然是:

M = cat(3, [1,2; 2,3], [5,9; 1,4]); 

因此,我們得到:

>> M = cat(3, [1,2; 2,3], [5,9; 1,4]) 

M(:,:,1) = 

    1  2 
    2  3 


M(:,:,2) = 

    5  9 
    1  4 

的第一片是矩陣[1,2; 2,3]和第二層是[5,9; 1,4]。從它看起來,您只需要每個切片的第一列的平均值,並將其作爲值的單個向量返回。因此,請將mean函數和索引用於所有行和切片的第一列。這將不幸成爲一個單身3D陣列,所以你需要擠出單身人士的維度。

事不宜遲:

O = squeeze(mean(M(:,1,:))) 

因此,我們得到:

>> O = squeeze(mean(M(:,1,:))) 

O = 

    1.5000 
    3.0000