convert Vector into matrix ?
16 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Youssef Khmou
2013-5-24
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 个评论
Mohammed Ghouse Mohiuddin
2021-3-31
For loops are too complex for me. I hate it. Nobody explains it to me in a logical way.
Image Analyst
2021-3-31
@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.
更多回答(6 个)
Image Analyst
2013-5-24
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
2013-5-24
编辑:Matt Kindig
2013-5-24
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 个评论
Youssef Khmou
2013-5-25
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 个评论
Youssef Khmou
2013-5-25
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 个评论
anukriti dureha
2013-5-25
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!