How can I convert a 2D matrix into separate 1D vectors in one line
9 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Star Strider
2016 年 12 月 19 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Coordinate Transformations and Trajectories についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!