【问题标题】:Vectorize 3d operation in matlab在matlab中矢量化3d操作
【发布时间】:2014-07-15 01:55:12
【问题描述】:

你能否对将 U 的列添加到 cwx 并将结果存储在 3d 数组中的操作进行矢量化?

非矢量化解决方案:

cwx =rand([500,100]);
U = rand([500 10]);

F = zeros([500 100 10]);
for y = 1:10
    F(:,:,y) = bsxfun(@plus,U(:,y),cwx);
end

【问题讨论】:

  • 在您的非矢量化解决方案中,未定义变量 n_clases。
  • magic 仅使用一个标量输入,magic([500,100]);magic(500); 的作用相同。
  • 是的。我改变了例子

标签: arrays matlab vectorization


【解决方案1】:

只需调用bsxfun 即可完成,前提是您首先permute U 的第二和第三维度:

F = bsxfun(@plus, permute(U, [1 3 2]), cwx);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多