Mathematica中磁盘像素的协方差矩阵

时间:2011-12-29 17:49:58

标签: image matrix wolfram-mathematica covariance

我想计算下图中的协方差矩阵。基于像素。这是将磁盘的每个黑像素视为向量。

虽然下面的单位是厘米,但我正在使用的屏幕上每厘米有32个像素。

在协方差矩阵计算本身之前,我无法弄清楚获得所有像素矢量的方法。

enter image description here

frmXY = {{6.59, 1.59}, {33.41, 28.41}};

stim = {{10.85, 21.91, 0.97}, {16.8, 5.26, 0.97}, {11.78, 7.11, 0.97}, 
        {12.64, 14.13, 0.97`}, {20.24, 16.16, 0.97}, {29.51, 8.06,1.53}, 
        {22.42, 5.78, 1.53}, {27.13, 16.47, 1.53}}


Graphics[{EdgeForm[Thick],White, Rectangle @@ frmXY, Black,
          Disk @@@ (stim /. {a_, b_, c_} :> {{a, b}, c})}, ImageSize -> 300]

1 个答案:

答案 0 :(得分:5)

从您的问题中不清楚是什么构成了描述您的模型/系统的随机变量,而我不明白您尝试采用协方差矩阵是什么。

然而,这是一个简单的例子,展示如何获得协方差矩阵并计算特征值和特征向量(基本上,重现你的第一个图)。

list = RandomReal[
   MultinormalDistribution[{0, 0}, {{6, 3}, {3, 3}}], {5000}];
sampleCov = Covariance@list;
{eigValues, eigVectors} = Eigensystem@sampleCov;

Show[ListPlot@list, 
 Graphics[{Red, Arrowheads[0.03], 
   Arrow[{{0, 0}, #}] & /@ (eigValues eigVectors)}]]

enter image description here