Ковариационная матрица пикселей дисков в Mathematica - PullRequest
1 голос
/ 29 декабря 2011

Я хотел бы вычислить Ковариационную Матрицу на изображении ниже.Пиксельный.Это означает, что каждый черный пиксель дисков является вектором.

Хотя приведенные ниже единицы измерения указаны в сантиметрах, на экране, который я использую, 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 Ответ

5 голосов
/ 30 декабря 2011

Из вашего вопроса неясно, что представляет собой случайная величина, которая описывает вашу модель / систему, и я не понимаю, что именно вы пытаетесь принять ковариационной матрицей.

Однако, вот простой пример, показывающий, как получить ковариационную матрицу и вычислить собственные значения и собственные векторы (в основном, воспроизвести ваш первый график).

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

...