如果我有陣列如方陣:如何獲得第一值的平均值在陣列矩陣中在Matlab
[1,2],[2,3]
[5,1 9],[1,4]
我想要得到的第一值的平均值中的每一行這樣的陣列:
1.5
這是可能的Matlab? 我用平均值(矩陣,2)命令來做到這一點與單個值的矩陣,但我不知道如何擴大這個來處理數組。
如果我有陣列如方陣:如何獲得第一值的平均值在陣列矩陣中在Matlab
[1,2],[2,3]
[5,1 9],[1,4]
我想要得到的第一值的平均值中的每一行這樣的陣列:
1.5
這是可能的Matlab? 我用平均值(矩陣,2)命令來做到這一點與單個值的矩陣,但我不知道如何擴大這個來處理數組。
獲取矩陣的所有陣列的第一要素,然後調用mean
功能
mean(matrix(:,:,1))
也許你需要調用之前重塑mean
a = matrix(:,:,1);
mean(a(:))
儘管這個問題更好地回答了這個問題,但這都是猜測。我們對矩陣的實際形狀或格式沒有深入的瞭解,所以當OP決定編輯他的問題時,這個答案可能並不正確,儘管我懷疑他永遠不會回來。 – rayryeng
你的問題凝視了很久之後時間,它看起來像你的輸入是一個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
是您的矩陣中的3D矩陣使用這些值作爲片?你的符號很混亂。請使用實際的MATLAB語法來表達您的矩陣。 – rayryeng