Expand vector along third dimension
33 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Henrik Dam
am 25 Nov. 2014
Bearbeitet: Matt J
am 29 Nov. 2014
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.
0 Kommentare
Akzeptierte Antwort
Matt J
am 25 Nov. 2014
Bearbeitet: Matt J
am 25 Nov. 2014
I have a matrix S which is x times y. Then I would subtract each element of K (what I wanted to use the extra dimension for), take the positive part (i.e. max of the result and 0) and sum out the first dimension x to get a y times n matrix.
K=reshape(K,1,1);
result = squeeze( sum( max( bsxfun(@minus,S,K), 0), 1 ) )
1 Kommentar
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!