create a matrix with existing matrix
Show older comments
i have a matrix with dimension
A = M * 361
i wanted to create a matrix with size
B = M * 3600
with this matrix A
how to do it??
also a matrix with dimension
C = N * 900
i wanted to create a matrix with size
D = N * 3600
how to do it?? please do reply...
with this matrix A
4 Comments
ES
on 3 Dec 2013
say M is 10, then A has 361*10=3610 elements. and B has 3600*10=36000 elements. B has about 32000 extra spots. what do you want to but in the extra spots. If you want to pad them with zeros, use
zeros,
if you want to make B as a 'collage' of A, use
repmat.
Elysi Cochin
on 3 Dec 2013
ES
on 3 Dec 2013
C to D is straightforward since number of rows in C and D are equal, and D has 4 times the columns in C.
D=repmat(C,1,4)
and for A to B you can use this workaround.
B=repmat(A,1,10)
B=B(:,1:3600);
I hope someone gives a straighter solution.
Accepted Answer
More Answers (1)
Andrei Bobrov
on 3 Dec 2013
Edited: Andrei Bobrov
on 3 Dec 2013
One way:
newsize2 = 3600;
[i0,j0] = ndgrid(1:size(A,1),1:size(A,2));
F = griddedInterpolant(i0,j0);
[io,jo] = ndgrid(i0(:,1),linspace(1,j0(end),newsize2));
B = F(io,jo);
or
B = zeros(M,3600);
B = A(:,rem((1:size(B,2))-1,size(A,2))+1);
Categories
Find more on Matrix Indexing 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!