【问题标题】:vectorize lookup in matlab 2-d matrix在matlab 2-d矩阵中矢量化查找
【发布时间】:2016-05-25 03:15:00
【问题描述】:

您好,我在向量化以下 Matlab 代码段时遇到问题

for i=1:n;
    vec(i) = mat(index(i),i);
end;

其中 index 是 1:n 的排列。

这种形式的代码非常慢。我在 Matlab 中检查了一些关于矢量化技巧的注释,但无济于事,但我可能遗漏了一些明显的东西。提前致谢!

【问题讨论】:

    标签: matlab vector vectorization


    【解决方案1】:

    您可以使用index1:n获取mat的相关部分。

    vec = mat(index, 1:n);
    

    如果n实际上是mat中的列数,你可以简单地这样做:

    vec = mat(index,:);
    

    【讨论】:

    • 一开始我没有看到第二种解决方案。 n 确实是mat 中的列数,我确实错过了明显的!第一个解决方案似乎工作得更快。谢谢
    • @user2635254 这很有趣,因为第二种解决方案应该更快。如果它适合您,请考虑将其标记为解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多