【问题标题】:Spatial Averaging in MatlabMatlab中的空间平均
【发布时间】:2015-01-21 16:23:21
【问题描述】:

我想对我的离散速度数据 U 执行积分平均,

U是一维数组,每个值对应一个phi的空间值。

   U(phi) =[15 20 30 74 89 25 78 75 72 56 15]  
            0              pi             2pi     

U(theta + phi) 只是将数组 U(phi) 旋转一个 theta 值,该值也从 (0 到 2pi) 变化

 if (theta = pi)  % example % 
 U(theta+phi) = [25 78 75 56 15 15 20 30 74 89]  % Matrix is shifted by pi

我的问题是如何整合这两个矩阵,到目前为止我应用了这个方法(如下)但我不确定它是否正确:

U = [15 20 30 74 89 25 78 75 72 56 15];
L = 0:(2*pi)/10:2*pi;
C1 = U;

for lt = 1:1:length(L)

                    if (lt > 1)

                           rt = lt -1;
                           C1 = circshift(U , [1 -rt]);

                    end

             Cm(lt) = 1/(2*pi) * trapz(C1.*U,L);


end

谁能帮我验证一下,或者如果可能的话给我一些其他建议。

谢谢

【问题讨论】:

    标签: matlab average spatial


    【解决方案1】:

    根据我对你想要整合的理解,你应该做什么

    Cm(lt) = 1/(2*pi) * trapz(L,C1.*U);
    

    因为如果你看帮助trapz:

    Q = trapz(X,Y)Y 与间距增量 X 整合在一起。 [..]length(X)必须等于这个维度的大小

    【讨论】:

      【解决方案2】:

      这种(一维)空间平均方法效果很好

        U = [15 20 30 74 89 25 78 75 72 56 15];
        L = 0:(2*pi)/10:2*pi;
        C1 = U;
      
            for lt = 1:1:length(L)
      
                        if (lt > 1)
                             rt = lt -1;
                             C1 = circshift(U , [1 -rt]); % Shifts the matrix 
                      end
      
               Cm(lt) = 1/(2*pi) * trapz(L,C1.*U);   % Integration over the data
      

      结束

      【讨论】:

      • 正如您所说:yoh.lej 的答案正是我要寻找的:请删除此答案并点击他答案旁边的灰色复选标记接受他的答案到turn it green instead!!
      猜你喜欢
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多