How can I merge two arrays in adjacent cells?.
7 views (last 30 days)
Show older comments
I have two different vectors which contain many x-coordinate and y-coordinate in them. I want to merge them in one array where first cells will have x1 and y1-coordinate, second cell will have x2 and y2-coordinate and etc.. I have written a code but it gives different results. It just joins the y coordinates at the point where x-coordinates end.
c_start_x = x_vertices(1:2:end);
c_end_x = x_vertices(2:2:end);
c_start_y = y_vertices(1:2:end);
c_end_y = y_vertices(2:2:end);
c_start = [transpose(c_start_x);transpose(c_start_y)];
0 Comments
Answers (2)
Dyuman Joshi
on 28 Nov 2023
I assume that the x and y data is stored in arrays x_vertices and y_vertices respectively.
C = [x_vertices(:) y_vertices(:)]
Here the data will be arranged row-wise, i.e. each coordinate pair will be in the corresponding row.
2 Comments
Dyuman Joshi
on 28 Nov 2023
Edited: Dyuman Joshi
on 28 Nov 2023
Ok, so you want a cell array. In that case, one approach is -
X = [1 2 3];
Y = [4 5 6];
Z = mat2cell([X;Y], 2, ones(1, numel(X)));
Z{1}
Though, Is there any particular reason why you want to store the data in a cell array?
Generally, storing in a numerical array is quite efficient than storing in a cell array.
See Also
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!