2013-04-30 3 views
0

Я пытаюсь провести корреляционный анализ матрицы X1000x60x5 по вектору Y1000x1. Использование кода:MATLAB Корреляция сбой «количество строк» ​​

for g=1:size(X,1) 
    for h=1:size(X,2) 
     C = corr(X(g,h,:),Y,'rows','complete','Type','Spearman'); 
    end 
end 

К сожалению, я получаю ошибку:

??? Error using ==> corr at 103 
X and Y must have the same number of rows. 

Несмотря на то, что они оба имеют 1000 строк. Я не могу понять, почему это так.

+0

Что ваша цель? Вы переписываете 'C' на каждой итерации цикла ... какая корреляция или набор корреляций вы после точно? – Dan

+0

Я собираюсь задать новый вопрос. Я думал, что знаю, что делаю, оказывается, нет. – 8eastFromThe3ast

ответ

4

X и Y не имеют одинаковое количество строк, в вашем случае X фактически X(g,h,:), который имеет только 5 элементов (и только один ряд на самом деле), так как g является скаляром

+1

+1: OP, вероятно, хочет найти корреляцию между 'X (:, g, h)' и 'Y', где' g' работает от 1 до 'size (X, 2)' и 'h' run от 1 до 'size (X, 3)' ... –