How to calculate the correlation coefficient between an array and a matrix?

Illustration
Penelope - 2021-02-02T10:25:56+00:00
Question: How to calculate the correlation coefficient between an array and a matrix?

I have a  matrix A and a matrix B, with the same number of rows and a different number of columns. I need to calculate the correlation coefficient between each single columns of the matrix A and all the columns of the matrix B. For each column of A, the partial result will be an array, so I'm thinking to a matrix as final result.   Is there a way to do this avoiding the "for" cycle? Which is the most efficient way to do this? Could you suggest me the best syntax?   Finally, I have also to do the same with the mean squared error: again, in this second case, is it possible to avoid the "for" cycle? Thanks for your answers.

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

If you have the Statistics and Machine Learning Toolbox, it sounds like you want this:

 

>> x = randn(20,3);
>> y = x*[1 0;0 1;1 1];
>> corr(x,y)
ans =
    0.9221   -0.1434
   -0.2979    0.8438
    0.6825    0.5606

I'm not sure what you mean by mean squared error. The following adds some noise to get z, then computes coefficients for predicting y from z, then computes the sum of squared differences between y and the predicted values for each column. Does this point you in the right direction?

 

>> z = x+randn(size(x))/100;
>> b
b =
    0.9983   -0.0009
   -0.0000    0.9964
    1.0016    1.0049
>> sum((y-yhat).^2)
ans =
    0.0025    0.0054


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!