How do I efficiently find the mean and covariance of a cell containing matrices with different rows?

1 Ansicht (letzte 30 Tage)
I have a 1x15 cell which contains 15 matrices, and each of them has different number of rows but all have the same number of columns(14). I am trying to find the mean and covariance of the whole cell. I compute them by concatenating all matrices into a big matrix and use the built-in functions to get the result, which looks like this:
M = C{1};
for i=2:15
M = [M; C{i}];
mean = mean(M);
cov = cov(M);
I think this approach does not fully take advantage of the flexibility of cells. Is there a more efficient way to do that?

Akzeptierte Antwort

ANKUR KUMAR am 10 Okt. 2018
Bearbeitet: ANKUR KUMAR am 10 Okt. 2018
Use concatenate to mix up all cells into one matrix.
cat(2,C{:}); %you can use this only if number of rows must be same in all cells
cat(1,C{:}); %for your data
After using cat, calculate mean and cov in usual manner.
As your data have the different number of rows in all cells, you cannot use cat(2,C{:}).

Weitere Antworten (0)


Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by