Average certain rows in 3D matrix
显示 更早的评论
Hi I have a 3D matrix X(63x180x360), I need to average the following elements:
X(4,:,:),X(5,:,:),X(6,:,:),X(9,:,:),X(11,:,:),X(17,:,:),X(28,:,:),X(38,:,:),X(43,:,:),X(50,:,:),X(57,:,:);
It should give me back a 3D matrix, is there a simple way, or even a general way to average certain rows
2 个评论
James Tursa
2016-5-25
If you are doing an average, how do you get back a 3D matrix? For your example, what is the dimension of the result you want?
Nadine
2016-5-25
回答(2 个)
dpb
2016-5-26
Can you write an expression to select the desired rows? If so, simply
ix=[4:6 9 11...]; % whatever is the logic to select the desired rows
mn=mean(x(ix,:,:),1);
Trivial example...
>> x=randn(3,2,5);
>> ix=[1,3];
>> mn=mean(x(ix,:,:),1);
>> whos x mn
Name Size Bytes Class Attributes
mn 1x2x5 80 double
x 3x2x5 240 double
>>
James Tursa
2016-5-26
Is this what you want?
rows = [4 5 6 9 11 17 28 38 43 50 57];
Y = mean(X(rows,:,:),1);
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!