首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Octave :两个向量的笛卡尔乘积的矢量化实现

Octave :两个向量的笛卡尔乘积的矢量化实现
EN

Stack Overflow用户
提问于 2020-07-23 10:50:16
回答 1查看 45关注 0票数 2

有没有可能在不使用for循环的情况下实现下面的代码?

基本上,我们从矩阵a和b中提取每一对行向量,将它们传播到一个矩阵中,进行分量乘法,并将结果设置为结果向量。

谢谢

代码语言:javascript
复制
m = 4;
n1 = 3;
n2 = 2;

% result is a 3d array of dimensions m * n1 * n2
result = reshape(1:24, m, n1, n2);

a = reshape(1:12, m, n1)
b = reshape(1:8, m, n2)

for i = 1:m
 mat = a(i, :)' .* b(i, :);

 result(i, :, :) = mat;
endfor
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-23 12:16:16

广播也可以应用于多个多维数组:

代码语言:javascript
复制
 result  = a .* reshape (b, m, 1, n2);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63046113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档