MATLAB Answers

Multiplication of 1D and 2D vector to a 3D vector

조회 수: 8(최근 30일)
Liu Lilingjun
Liu Lilingjun 21 Oct 2020
답변: madhan ravi 21 Oct 2020
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

댓글을 달려면 로그인하십시오.

답변(4개)

madhan ravi
madhan ravi 21 Oct 2020
편집: madhan ravi 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

댓글을 달려면 로그인하십시오.


madhan ravi
madhan ravi 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

댓글을 달려면 로그인하십시오.


madhan ravi
madhan ravi 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

댓글을 달려면 로그인하십시오.


madhan ravi
madhan ravi 21 Oct 2020
C = repelem(B, 1, 1, max(A))

  댓글 수: 0

댓글을 달려면 로그인하십시오.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by