Effacer les filtres
Effacer les filtres

Multi dimensional array scaling

1 vue (au cours des 30 derniers jours)
mark
mark le 19 Jan 2014
Commenté : mark le 20 Jan 2014
Given the matrix A (where A is X by Y by Z matrix. Scale the matrix A such that every element in the kth page is scaled by 5k for k = 1,2,3...Z.
I would have to produce a matrix B such that with element wise multiplication with matrix A it gives me the scaled version.
I have tried messing around with repmat and reshape functions but I can't seem to get it

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 19 Jan 2014
Modifié(e) : Azzi Abdelmalek le 19 Jan 2014
[n,m,p]=size(A)
out=5*reshape(repmat(1:p,n*m,1),size(A)).*A
  1 commentaire
mark
mark le 20 Jan 2014
Thank you

Connectez-vous pour commenter.

Plus de réponses (1)

Jan
Jan le 19 Jan 2014
Modifié(e) : Jan le 19 Jan 2014
What about starting will a simple loop:
s1 = 10;
s2 = 20;
s3 = 30;
A = rand(s1, s2, s3);
B = A;
for k = 1:s3
B(:, :, k) = B(:, :, k) * 5 * k;
end
Later on I'd prefer bsxfun:
B = bsxfun(@times, A, reshape(5:5:5*s3, 1, 1, s3))

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by