slicing matrix in efficient way
140 views (last 30 days)
Show older comments
I have a 120*1 matrix and i want to divide into 3 matrix x,y,z where first 10 elements goes to x, next 10 to y and next 10 to z and then next 10 elements to x as the second column. I did that
x = [1:10; 31:40; 61:70; 91:100] %=[10x4]
y = [11:20;41:50;71:80;101:.110] % =[10x4]
z= [21:30; 51:60; 81:90;111:120] %=[10x4]
Is there any efficient way to do that?
0 Comments
Accepted Answer
Rik
on 5 Jun 2020
Something like this should do the trick:
a=1:120;
b=reshape(a,10,3,[]);
x=squeeze(b(:,1,:));
y=squeeze(b(:,2,:));
z=squeeze(b(:,3,:));
0 Comments
More Answers (2)
madhan ravi
on 5 Jun 2020
Matrix = reshape(1:120,10,[]);
x = Matrix(:,1:3:end)
y = Matrix(:,2:3:end)
z = Matrix(:,3:3:end)
0 Comments
James Tursa
on 5 Jun 2020
Another way:
a = 1:120;
r = reshape(a,30,[]);
x = r( 1:10,:);
y = r(11:20,:);
z = r(21:30,:);
0 Comments
See Also
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!