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

10 ビュー (過去 30 日間)
Liu Lilingjun
Liu Lilingjun 2020 年 10 月 21 日
回答済み: madhan ravi 2020 年 10 月 21 日
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?

回答 (4 件)

madhan ravi
madhan ravi 2020 年 10 月 21 日
編集済み: madhan ravi 2020 年 10 月 21 日
C = reshape(A, 1, 1, []) .* B % use bsxfun() if you’re version is prior to 2016b
C = bsxfun(@times, reshape(A, 1, 1, []), B)

madhan ravi
madhan ravi 2020 年 10 月 21 日
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))

madhan ravi
madhan ravi 2020 年 10 月 21 日
[m, n] = size(B);
C = zeros(m, n, numel(A));
for k = 1:numel(A)
C(:, :, A(k)) = B;
end
C

madhan ravi
madhan ravi 2020 年 10 月 21 日
C = repelem(B, 1, 1, max(A))

カテゴリ

Help Center および File ExchangeOperators and Elementary Operations についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by