필터 지우기
필터 지우기

How To Make Code Run Faster

조회 수: 1 (최근 30일)
Bailey Smith
Bailey Smith 2018년 6월 18일
댓글: Bailey Smith 2018년 6월 19일
What can I change about my code to make it run quicker/more efficiently? I would really appreciate it if things were listed one at a time, such as "change this one thing" or "change that one thing". I am trying to learn how to code more efficiently, but don't want to change my whole code, so changing one little thing here and there could really help me to learn this language better. Thank you!
clear; clc;
tic
x=0:pi/100000:pi;
y=sin(x);
n=1;
L=length(x);
while n<L
m(n,1)=x(n);
m(n,2)=(y(n+1)-y(n))/(x(n+1)-x(n));
n=n+1;
end
m(n,1)=x(n);
m(n,2)=NaN;
toc

채택된 답변

Stephen23
Stephen23 2018년 6월 18일
편집: Stephen23 2018년 6월 18일
1. The most important change you could make would be to preallocate the matrix m:
2. You should also replace the while loop with a for loop, which is pretty easy as you know exactly how many iterations are required. In some low-level languages while loops are used very liberally, but in high-level MATLAB for loops are preferred (for simplicity, ease of debugging, etc).
3. The final step would be to realize that using a loop is an inefficient way to solve this problem anyway, and that using diff and rdivide would be simpler and faster.
  댓글 수: 3
Stephen23
Stephen23 2018년 6월 18일
L = numel(x);
m = zeros(L,2);
Bailey Smith
Bailey Smith 2018년 6월 19일
Thank you so much for the help!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by