How do I transpose a vector within a cell?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Austin Sowers
am 20 Sep. 2018
Kommentiert: Guillaume
am 20 Sep. 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!
0 Kommentare
Akzeptierte Antwort
Guillaume
am 20 Sep. 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 Kommentare
Guillaume
am 20 Sep. 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
Weitere Antworten (1)
KSSV
am 20 Sep. 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)
0 Kommentare
Siehe auch
Kategorien
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!