convert Vector into matrix ?
14 views (last 30 days)
Show older comments
Hello, i need to convert a vector into matrix like this:
A = [1 2 3 4 5]
into
B=[1 2 3; 2 3 4; 3 4 5]
Any ideas ??
0 Comments
Accepted Answer
Youssef Khmou
on 24 May 2013
hi Alex
This is not conversion but you are adding new elements to the original vector :
If you have a vector of size Mx1 you can convert it to matrix using function reshape to get a matrix of size PxN such M=P*N.
r=randn(100,1);
y=reshape(r,10,10);
In your case , try :
A=1:5;
t=1;
r=3;
for n=1:3
B(n,:)=t:n+2;
t=t+1;
r=r+1;
end
3 Comments
Mohammed Ghouse Mohiuddin
on 31 Mar 2021
For loops are too complex for me. I hate it. Nobody explains it to me in a logical way.
Image Analyst
on 31 Mar 2021
@Mohammed Ghouse Mohiuddin, uncommented code (like Alex's) can be hard to understand. Everyone should use comments. If you can't figure it out, post a new question with the code you are trying to adapt and an explanation of what you really want to do (if you could adapt it). But read this link first.
More Answers (6)
Image Analyst
on 24 May 2013
I know it seem really really obvious, but if that is all we have to go on (i.e. no indication that it needs to be generalized in any way), then why not just do this:
B = [A(1:3);A(2:4);A(3:5)]
Matt Kindig
on 24 May 2013
Edited: Matt Kindig
on 24 May 2013
It might not be very efficient, but I think it should work:
nc = 3; %number of columns in B
nc = nc-1;
c = 1:(length(A)-nc);
B = cell2mat(cellfun(@(n) A(n:(n+nc)), num2cell(c(:)), 'uni', false))
0 Comments
Youssef Khmou
on 25 May 2013
hi, there are other alternatives , :
try :
N=32;
A=1:N;
A2=0:N-1;
A2=A2';
B=repmat(A,N,1);
for x=1:N
B(:,x)=B(:,x)+A2;
end
0 Comments
Youssef Khmou
on 25 May 2013
hi,
here is the best solution without using loops :
N=32;
A=1:N;
B=repmat(A,N,1);
A2=(0:N-1)';
B2=repmat(A2,1,N);
C=B+B2;
0 Comments
anukriti dureha
on 25 May 2013
hi alex, you can do this:
i=1;
ind=0;
num=3;
while num <=5
ind=ind+1;
z{i}=A(ind:num);
num=num+1;
i=i+1;
end
z=cell2mat(x);b=vec2mat(z,3);
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices 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!