Expand vector along third dimension
Show older comments
My question is simply, but I cannot figure out how to do it.
Assume I have a vector K=[K_1,..,K_n] then I would like to create a three dimensional matrix M with first dimension equal to x, second dimension equal to y and third dimension equal to n such that M(:,:,1)=K1*ones(x,y), M(:,:,2)=K2 * ones(x,y) etc. I know of course I can loop, but I am expecting a neat one-liner exists.
Accepted Answer
More Answers (1)
but I am expecting a neat one-liner exists.
It does
M=repmat( reshape(K,1,1,[]), x, y);
but it is often better to use BSXFUN when applicable. That way you don't have to allocate any actual memory for duplicate data.
Categories
Find more on Resizing and Reshaping 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!