2015-07-28 6 views
0

У меня есть матрица 50x120x185 с именем A, причем 50x120 представляет собой серию координат широты и долготы, а 185 - координаты во времени. И еще одна переменная 1x185, и мне нужно сопоставить эту переменную с каждой координатой матрицы через третье измерение времени (185).Многомерные массивы Matlab-корреляции

А = (50, 120, 185)

В = (1 2 3 4 5 ..)

Я попытался изменения формы А с помощью следующего кода:

D = reshape(A,[],size(A,3)); 

Но когда Я пытался соотнести

G = corr2(D',B'); 

Я получаю ошибки

Error using corr2>ParseInputs (line 39) 
A and B must be the same size. 
Error in corr2 (line 21) 
[a,b] = ParseInputs(varargin{:}); 

Кто-нибудь знает, как получить код, чтобы соотнести B с каждой широтой и долготой через третье измерение A?

Ее стоит отметить, что А имеет много Нэн

ответ

0

Как я понимаю, вы хотели сделать 50x120 = 6000 корреляции, каждый из которых является соотношением между 1x185 подмножеством со всеми B. Если это верно, вам нужно позвонить corr для каждой из этих корреляций.

Попробуйте что-нибудь наподобие arrayfun(@(i) corr(Ap(i,:),B), 1:size(Ap,1)), где Ap = reshape(A, [], size(A,3).