【问题标题】:average 3d matrix matlab using reshape使用重塑的平均 3d 矩阵 matlab
【发布时间】:2015-01-24 21:28:31
【问题描述】:

我有一个 27x38x8760 矩阵,其中 27x38 代表一个网格和一年中的 8760 小时。我想对网格进行每日平均,这样我得到的矩阵是 27x38x365。 我将 reshape 用于二维矩阵,但是否有可能将它也用于 3d? 亲切的问候马蒂亚斯

【问题讨论】:

  • 你如何使用 reshape 来获得每日平均值?

标签: matlab matrix reshape


【解决方案1】:

假设A 是输入矩阵,看看这是否适合你 -

[m,n,r] = size(A)
daily_avg = squeeze(mean(reshape(A,m,n,24,[]),3))

或者避免 squeezepermute -

daily_avg = mean(permute(reshape(A,m,n,24,[]),[1 2 4 3]),4)

【讨论】:

  • 很好地使用reshape
【解决方案2】:

你也可以使用循环,

A = rand([27 38 8760]);
for i = 1 : 24 :8760
    A_avg(:,:,ceil(i / 24)) = mean(A(:,:,i : i + 23),3);
end

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2011-01-16
    相关资源
    最近更新 更多