matlab圆阵列,matlab – 如何沿阵列的某个维度执行操作?

我有一个包含5个3×4切片的3D数组,定义如下:

rng(3372061);

M = randi(100,3,4,5);

我想收集有关数组的一些统计信息:

>每列中的最大值.

>每行的平均值.

>每个切片内的标准偏差.

这很简单,使用循环,

sz = size(M);

colMax = zeros(1,4,5);

rowMean = zeros(3,1,5);

sliceSTD = zeros(1,1,5);

for indS = 1:sz(3)

sl = M(:,:,indS);

sliceSTD(indS) = std(sl(1:sz(1)*sz(2)));

for indC = 1:sz(1)

rowMean(indC,1,indS) = mean(sl(indC,:));

end

for indR = 1:sz(2)

colMax(1,indR,indS) = max(sl(:,indR));

end

end

但我不确定这是解决问题的最佳方法.

我在max,mean和std的文档中注意到的一个常见模式是它们允许指定额外的暗淡输入.例如,在max中:

M = max(A,[],dim) returns the largest elements along dimension dim. For example, if A is a matrix, then max(A,[],2) is a column vector containing the maximum value of each row.

如何使用此语法来简化我的代码?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值