uploaded all materials
This commit is contained in:
34
lessons/lesson04/for_loops.m
Normal file
34
lessons/lesson04/for_loops.m
Normal file
@@ -0,0 +1,34 @@
|
||||
%% Lesson 2b: Control Sequence - For loops
|
||||
% Similar to other languages, MATLAB have if, while and for control
|
||||
% sequences. For loops are one of the commonly used control sequences in
|
||||
% MATLAB. We will continue the discussion of if and while in the next
|
||||
% lesson.
|
||||
|
||||
clear;
|
||||
n = 1e7;
|
||||
% D = zeros(1,n); % This is called pre-allocation
|
||||
% try uncommenting this line to see the
|
||||
% difference. Memory allocations are slow!
|
||||
|
||||
% Calculate fib(n). Hard to do vectorized unless we know Binet's formula.
|
||||
% (Note that this will quickly overflow, but that's not our objective
|
||||
% here.)
|
||||
D(1) = 1;
|
||||
D(2) = 2;
|
||||
tic % start timer
|
||||
for i = 3:n
|
||||
D(i) = D(i-1) + D(i-2);
|
||||
end
|
||||
toc % print elapsed time since last tic
|
||||
|
||||
%% Be careful!
|
||||
% For loops are considered the more inefficient type of operation in
|
||||
% MATLAB. Performing operations on vectors is faster because your hardware
|
||||
% can optimize vectorized instructions, and because the "for" construct
|
||||
% exists in MATLAB's runtime, which is essentially a scripting language and
|
||||
% thus is slow.
|
||||
%
|
||||
% However, things are changing, and things like parfor (parallel-for) and
|
||||
% advanced JIT (just-in-time) compilation are improving the performance of
|
||||
% loops. But vectorized operations are almost always faster and should
|
||||
% be used where possible.
|
||||
Reference in New Issue
Block a user