How can I convert a 2D matrix into separate 1D vectors in one line
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Amir Patel
il 19 Dic 2016
Commentato: Amir Patel
il 19 Dic 2016
hi
I have a 1673 x 34 matrix of data. I would like to put each column into its own 1673 length variable.
I know I can index each of these one at a time, but it will take long with 34 variables. Is there a way to do it in one line?
I can do it with a 1 x 34 using num2cell and then deal. Eg:
states = num2cell(states);
[ ddx, ddy, ddz, ddphi1, ddth1, ddpsi1, ddth3, ddpsi3, ddth4, ddpsi4, dx, dy, dz, dphi1, dth1, dpsi1, dth2, dth3, dpsi3, dth4, dpsi4, x, y, z, phi1, th1, psi1, th2, th3, psi3, th4, psi4, k, b]=deal(states{:});
0 Commenti
Risposta accettata
Star Strider
il 19 Dic 2016
Please don’t!
I would use the mat2cell function to create them as a cell array. It is easier to address them as individual cell elements than as columns of your matrix.
Example:
M = randi(9, 1673, 34); % Create Data
C = mat2cell(M, size(M,1), ones(1,size(M,2))); % Create Column-Vector Cells
3 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Coordinate Transformations and Trajectories in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!