This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
gibson:teaching:spring-2016:math445:lecture:forloop [2016/02/16 11:47] gibson |
gibson:teaching:spring-2016:math445:lecture:forloop [2016/02/17 07:38] (current) gibson |
||
---|---|---|---|
Line 24: | Line 24: | ||
* ''%d'' decimal (integer), e.g. 5 | * ''%d'' decimal (integer), e.g. 5 | ||
* ''%f'' floating-point, e.g. 2.75 | * ''%f'' floating-point, e.g. 2.75 | ||
+ | * ''%e'' floating-point in scientific (exponential) notation, e.g. 2.75e+00 for 2.75 | ||
* ''%s'' string (a sequence of characters), e.g. '' 'banana'''. | * ''%s'' string (a sequence of characters), e.g. '' 'banana'''. | ||
* ''%c'' character, e.g. '' 'q' '' | * ''%c'' character, e.g. '' 'q' '' | ||
+ | |||
+ | The decimal and floating-point slots can be specialized to print numbers in particular ways, for example, | ||
+ | |||
+ | <code matlab> | ||
+ | >> fprintf('The value of pi is %8.3f\n', pi) | ||
+ | The value of pi is 3.142 | ||
+ | </code> | ||
+ | |||
+ | This prints $\pi$ with 3 digits after the decimal in a fixed-width field of 8 characters. | ||
+ | |||
+ | You can put as many slots in a format string as you like. Just provide as many variables as slots, and make sure the types of the slots match the variables. | ||
+ | |||
===== for loops: repeating sequences of commands===== | ===== for loops: repeating sequences of commands===== | ||
Line 76: | Line 89: | ||
===== example functions ===== | ===== example functions ===== | ||
- | ====mysum==== | + | ==== sum the components of a vector ==== |
This ''mysum'' function computes the sum of the components in the input vector $x$. There are a | This ''mysum'' function computes the sum of the components in the input vector $x$. There are a | ||
number of extraneous print statements which show how the calculation works, step-by-step. | number of extraneous print statements which show how the calculation works, step-by-step. | ||
Line 138: | Line 151: | ||
end | end | ||
</file> | </file> | ||
- | ===== example function: myfactorial ===== | + | ==== compute the factorial ==== |
+ | |||
+ | This function computes $n!$, the factorial of $n$, according to the formula | ||
+ | |||
+ | \begin{eqnarray*} | ||
+ | n! = \prod_{i=1}^n i = 1\cdot 2 \cdot 3 \cdot \ldots \cdot (n-2) \cdot (n-1) \cdot n | ||
+ | \end{eqnarray*} | ||
<file matlab myfactorial.m> | <file matlab myfactorial.m> | ||
Line 145: | Line 164: | ||
p = 1; % variable to store partial products | p = 1; % variable to store partial products | ||
- | |||
- | fprintf('Will need to do %d products.\n', n); | ||
| | ||
% each step through the loop does one more multiplication | % each step through the loop does one more multiplication | ||
% in the sequence of products 1, 1*2, 1*2*3, etc. | % in the sequence of products 1, 1*2, 1*2*3, etc. | ||
for i=1:n | for i=1:n | ||
- | fprintf('The current value of p is %f.\n', p); | ||
- | pause | ||
- | fprintf('Multiply p by %f.\n', i); | ||
p = p * i; | p = p * i; | ||
end | end | ||
- | + | ||
- | fprintf('The current value of p is %f.\n', p); | + | |
- | pause | + | |
end | end | ||
</file> | </file> |