필터 지우기
필터 지우기

如何提高 for 循环效率?

조회 수: 67 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2019년 12월 26일
답변: MathWorks Support Team 2019년 12월 26일
如何提高 for 循环效率?

채택된 답변

MathWorks Support Team
MathWorks Support Team 2019년 12월 26일
一般是三个方法:
1)预分配
即在for循环前,将输出结果矩阵预先分配。例如:
a=[0 0 0];
for i=1:3
a(i)=i;
end
这样在 for 循环中,就不会在内存中,每次对变量a进行再分配了。
2)矢量化
MATLAB 中,矩阵运算会比 for 循环效率更高,例如对一个矩阵的所有元素求 sin 值,并不需要用 for 循环,直接:
a=[1 2 3]
b=sin(a)
这样就避免了对 a 中的每个元素进行 for 循环。
3)并行化
使用 parfor,将 for 循环的运算量交给多个线程。但这样有一些限制,请参考 parfor 的相关帮助文档。

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 循环及条件语句에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!