Borrar filtros
Borrar filtros

converting a cell array of doubles in a matrix

123 visualizaciones (últimos 30 días)
Haneya Qureshi
Haneya Qureshi el 19 de Jun. de 2018
Comentada: OCDER el 19 de Jun. de 2018
I have a variable A which looks like this:
1×2 cell array
{1×9 double} {1×9 double}
I want to convert it to a matrix, i.e, the first row of matrix should be what's inside the A{1} and second row of matrix should be what's inside A{2}. A is a cell, but A{1} and A{2} are doubles. How can i do this?

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 19 de Jun. de 2018
A{1} = rand(1,9);
A{2} = rand(1,9);
cell2mat(A')
A =
1×2 cell array
{1×9 double} {1×9 double}
ans =
Columns 1 through 7
0.0844 0.3998 0.2599 0.8001 0.4314 0.9106 0.1818
0.1361 0.8693 0.5797 0.5499 0.1450 0.8530 0.6221
Columns 8 through 9
0.2638 0.1455
0.3510 0.5132
  2 comentarios
Haneya Qureshi
Haneya Qureshi el 19 de Jun. de 2018
Thank you so much! This works perfectly!
Ameer Hamza
Ameer Hamza el 19 de Jun. de 2018
You are welcome.

Iniciar sesión para comentar.

Más respuestas (1)

OCDER
OCDER el 19 de Jun. de 2018
A = {rand(1,10000), rand(1,10000)};
B = vertcat(A{:});
  1 comentario
OCDER
OCDER el 19 de Jun. de 2018
cell2mat is certainly the right function for converting cell arrays to matrices while preserving the MxN dimension of the cell array. However, vertcat is a built-in function (meaning super optimized) and will run ~2x faster for your case.
A = {rand(1,10000), rand(1,10000)};
t1 = timeit(@() vertcat(A{:}), 1);
t2 = timeit(@() cell2mat(A), 1);
fprintf('cell2mat(A'') time is %0.2f times slower than vertcat(A{:})\n', t2/t1);

Iniciar sesión para comentar.

Categorías

Más información sobre Cell Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by