Multiplication of 1D and 2D vector to a 3D vector
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have A = [1,2] and B = [1,1;1,1], what function I can use to get result of answer C which is 3D?
C(:,:,1) = [1,1
1,1]
C(:,:,2) = [1,1
1,1]
Is there anyway to realize it without loop?
0 commentaires
Réponses (4)
madhan ravi
le 21 Oct 2020
Modifié(e) : madhan ravi
le 21 Oct 2020
C = reshape(A, 1, 1, []) .* B % use bsxfun() if you’re version is prior to 2016b
C = bsxfun(@times, reshape(A, 1, 1, []), B)
0 commentaires
madhan ravi
le 21 Oct 2020
Sigh. Your question says one thing and your example does another thing. Only God know what you want.
C = repmat(B, 1, 1, max(A))
0 commentaires
madhan ravi
le 21 Oct 2020
[m, n] = size(B);
C = zeros(m, n, numel(A));
for k = 1:numel(A)
C(:, :, A(k)) = B;
end
C
0 commentaires
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!