How do I transpose a vector within a cell?

2 visualizaciones (últimos 30 días)
Austin Sowers
Austin Sowers el 20 de Sept. de 2018
Comentada: Guillaume el 20 de Sept. de 2018
I have a 1x5 cell each containing 4000 points of data. The 4000 points of data fill the columns, Id like to have each 1x4000 turn into a 4000x1. How to do this? Easy question right?
Thanks in advance!

Respuesta aceptada

Guillaume
Guillaume el 20 de Sept. de 2018
cellfun(@tranpose, yourcellarray, 'UniformOutput', false)
However, there's little point in using a cell array if all your vectors are the same size, so you would be better off transforming that into a 2-d matrix, so:
[yourcellarray{:}] %for a 4000x5 matrix
[yourcellarray{:}].' %for a 5x4000 matrix
  4 comentarios
Austin Sowers
Austin Sowers el 20 de Sept. de 2018
Actually, it worked. I do not know what I did the first time. Thank you!
Guillaume
Guillaume el 20 de Sept. de 2018
Error using cellfun Input #3 expected to be a cell array, was char instead.
You must have misspelled 'UniformOutput'
it turns it into a 1x16000
My mistake. The code I wrote is for column vectors, not row vectors. With row vectors:
vertcat(yourcellarray{:}) %for a 5x4000 matrix
vertcat(yourcellarray{:}).' %for a 4000x5 matrix

Iniciar sesión para comentar.

Más respuestas (1)

KSSV
KSSV el 20 de Sept. de 2018
A{1} = rand(5,1) ;
A{2} = rand(5,1) ;
A{3} = rand(5,1) ;
A{4} = rand(5,1) ;
B = cellfun(@(x) x',A,'un',0)

Categorías

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

Productos


Versión

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by