【问题标题】:covariance of a 400 50X50 matrix of matlabmatlab的400 50X50矩阵的协方差
【发布时间】:2015-02-03 13:08:02
【问题描述】:

我想使用循环计算 400 50 X 50 矩阵的协方差,所以当我尝试时..

for i=t-9:t+59
    for j=r-9:r+59
        a(:,:,p)=vidFrames2(i:(i+49),j:(j+49));
        b(:,:,p)=cov3d(double(a));
        p=p+1;     
    end
end

此代码我收到错误“分配的非单件右轴维度比非单件下标更多” 但是当我想通过此代码中的挤压功能消除此错误时,

 b(p,:)=cov3d(squeeze(double(a)));

我收到“下标分配维度不匹配”。 如何计算 3d 矩阵的协方差....cov3d 函数是-

function xy = cov3d(x)
[m,n,r] = size(x);
if m==1
x=zeros(n,n,r,class(x));
else
xc=bsxfun(@minus,x,sum(x,1)/m);
for i=1:r
    xci=xc(:,:,i);
    xy(:,:,i)=xci'*xci;
end
xy=xy/(m-1);

结束 实际上,我想要将 400 个协方差矩阵存储在一个变量中。在此更改之后,我只得到一个协方差矩阵。实际上,我正在处理一个框架,我将初始坐标值存储在 50 X 50 矩阵的 i 和 j 中。然后我想以 50 X 50 matix 的形式获得 10 X 10 邻域的像素值。这意味着如果我输入初始坐标为(100,100),那么我想获取存储在区域(91,91)(91,141)(141,91)(141,141)内的像素值。然后存储这个矩阵的协方差值。然后它会再次找到区域(92,91),(142,91)(92,141),(142,141)等的像素值并覆盖整个区域..所以如果我覆盖整个区域那么我想我将得到总共 400 个矩阵。我想存储所有区域的协方差值,.. 今天我将 for 循环的上限更改为 i=t-9:t+60 和 j=r-9:r+ 60,但我没有得到 400 个协方差矩阵

【问题讨论】:

  • 我看到这 50 x 50 矩阵似乎是视频中的帧。您是否打算根据像素强度的分布为视频中的每一帧找到一个 2x2 协方差矩阵?
  • @eigenchris - OP 从这里提取了cov3d 代码:stackoverflow.com/questions/17435510/…
  • @rayryeng 啊,我明白了。谢谢。 :)

标签: matlab matrix


【解决方案1】:

关于您的代码的一些问题:

  1. cov3d 旨在返回一个 3D 矩阵,其中输入也是一个 3D 矩阵,用于计算此 3D 矩阵中每个切片的协方差。从您的代码中,外部for 循环(索引ij)从t-9t+59,每个变量的步长为1。因此,这对循环将执行((t+59) - (t-9) + 1)^2 = 69^2 = 4761 次。我假设在每次迭代中,您都在提取位于a 的二维矩阵,这就是您最初说 400 次的原因。您基本上想要提取 400 个矩阵,但实际上您正在提取 4761 个矩阵。确保正确声明 a 以考虑这么多元素。

  2. a(:,:,p)=vidFrames2(i:(i+49),j:(j+49)); 访问 一个 切片,但 b(:,:,p)=cov3d(double(a)); 正在访问 a 的整个 3D 矩阵。因此,您将获得一个 3D 矩阵作为cov3d 的输出,但您正试图将其分配给b 中的单个切片。您可能应该做的是首先创建您的a 矩阵,然后在完成后一个调用cov3d


因此,请尝试将您的代码更改为:

%// Create `a` matrix first
for i=t-9:t+59
    for j=r-9:r+59
        a(:,:,p)=vidFrames2(i:(i+49),j:(j+49));
        p=p+1;     
    end
end

%// Now call cov3d
b = cov3d(double(a));

希望这将按照您希望代码最初工作的方式工作。

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 2014-03-12
    • 2012-11-22
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    相关资源
    最近更新 更多