function c foo(a, b)
for ii = [1 3 4 5]
c = a(:,ii) + b(:,ii);
end
return
有人能解释一下这是做什么的吗?它是否将a
的第1列添加到b
的第1列,然后是第3,4,5列的相同内容吗?它应该是c+=
吗?否则它只是覆盖最后一笔钱。我对matlab不太熟悉,这段代码有什么意义吗?任何人都可以看到任何方法来加快速度吗?
答案 0 :(得分:2)
如果代码执行了应该执行的操作(是的,它会覆盖以前的结果,并且只返回最后一个结果),最快的方法是:
function c foo(a, b)
c = a(:,5) + b(:,5)
end
如果它应该添加列并将它们“连接”在一起,可以直接使用索引:
function c foo(a, b)
ix = [1 3 4 5];
c = a(:,ix) + b(:,ix);
end