convert Vector into matrix ?
Mostrar comentarios más antiguos
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 ??
Respuesta aceptada
Más respuestas (6)
Image Analyst
el 24 de Mayo de 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)]
1 comentario
Alex
el 24 de Mayo de 2013
Matt Kindig
el 24 de Mayo de 2013
Editada: Matt Kindig
el 24 de Mayo de 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))
Youssef Khmou
el 25 de Mayo de 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
Youssef Khmou
el 25 de Mayo de 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;
anukriti dureha
el 25 de Mayo de 2013
0 votos
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);
A = [1,2,3,4,5];
B = hankel(A(1:3),A(3:5))
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!