2014-11-23 4 views
1

У меня есть 1000 станций наблюдения за США, для которых мне нужно получить матрицу взаимной корреляции размером 1000х1000. Я могу сделать это, делаяПространственное поле корреляции корреляции матрицы

[corelMat,pval] = corr([A1 A2 .... A1000],'type','kendall') 

Однако, я хочу поставить ноль этих элементов в матрице кросс-корреляции, где р-значение меньше, чем 0,001.

Как это сделать в MATLAB?

ответ

1

Просто найдите значения в pval, которые составляют менее 0,001, затем используйте это для индексации в corelMat и установите эти значения равными нулю. Таким образом:

corelMat(pval < 0.001) = 0; 

pval < 0.001 создает логическую матрицу, где true обозначает те р-значения, которые меньше, чем 0,001 и false в противном случае. Предоставляя логическую матрицу такого же размера, как corelMat, в качестве аргумента в corelMat, вы меняете только соответствующие позиции в corelMat, которые были true от pval. Как только вы найдете эти позиции, изменить эти значения в corelMat 0.


Надежда это помогает!

Смежные вопросы