【问题标题】:Vectorizing a for loop in MATLAB/Octave在 MATLAB/Octave 中向量化 for 循环
【发布时间】:2012-09-26 18:10:42
【问题描述】:

我的问题是:有没有办法在 MATLAB/Octave 中对这个操作进行矢量化?

y = %a (m x 1) vector, with every entry in [1, 10]
y2 = repmat(1 : 10, [m 1]);
for i = 1 : m
    y2(i, :) = (y2(i, :) == y(i));
end

【问题讨论】:

  • @macduff:kron 似乎没有得到正确的结果。
  • @Jonas,感谢您向我提问,我的评论有点草率。 :-)

标签: matlab octave


【解决方案1】:

bsxfun 是扩展和矢量化计算的好方法(如果有好处,它将执行多线程计算)。

m = 10;

y = randperm(m);

y2 = bsxfun(@eq,y,(1:m)')';

【讨论】:

  • @JoseRamirez:如果您认为有帮助,请考虑接受答案
猜你喜欢
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多