代码之家  ›  专栏  ›  技术社区  ›  Costinean Sebastian

如何优化使用for循环处理大型数组的MATLAB脚本的执行时间?"

  •  0
  • Costinean Sebastian  · 技术社区  · 1 年前

    如何优化使用for循环处理大型数组的MATLAB脚本的执行时间?

    我有一个使用for循环处理大型矩阵(例如10000x10000)的MATLAB脚本,但执行时间非常长。我的脚本看起来像这样:

    A = rand(10000, 10000); % Matrice inițială
    B = zeros(size(A));     % Matricea rezultată
    
    for i = 1:size(A, 1)
        for j = 1:size(A, 2)
            B(i, j) = A(i, j) * 2; % Exemplu simplu de procesare
        end
    end
    

    我知道MATLAB最适合矢量化操作。我如何重写此脚本以删除循环并减少执行时间?

    我尝试过使用arrayfun这样的函数,但我不确定这是否是解决这个问题的最佳方案。

    1 回复  |  直到 1 年前
        1
  •  1
  •   Radu Stefan    1 年前

    您是否尝试过使用简单的MATLAB运算,如B=2*A?