Matlab Tutorial 7: Common Programming Structures and Conditional Statements


While Loop in MATLAB

In a while loop the statements are repeated as long as the logical condition are true.
A while loop has the following the structure:

for variable=expression
control statements
end

If the logical expression is true, then the statements are executed. hen once again we evalute the logical expression and if still true then we repeat the statements. This continues until the logical expression becomes false. If the statement is false from the start, the loop is not entered.

Example 3:

Let us illustrate how to use a while-loop.

i=1;
the_sum=0;
for i=1:10
the_sum=the_sum+1/(i^2);
end
fprintf('The sum of 10 elements gives: %f ', the_sum)

Test and check to see what the m-file count_up does! Are there any surprises?
In order to produce the output we need 8 times to evaluate the expression j<8. Often one compares two numbers in these evaluations. In Matlab we have 6 operators to be used in comparison. < Less than > Greater than == Equal <= Less tham or equal. >= Greater than or equal ~= Not equal If the logical expression is true, then it gets the value 1 and the statements that follows will be performed, otherwise 0.

If-else in MATLAB

It is sometimes needed to have alternatives in programming. In Matlab this is achieved by if and else conditions or switch statements. See the following example:

if t==1 % if t=1, then increment h with one.
t=t+1;
else % else display the text ”Hello”.
disp('Hello')
end

The syntax looks like:

if logical expression
statement1
else
statement 2
end

If the logical expression is true then the statement 1 is carried out, but if the logical expression is false then statement 2 will be executed.There could of course be many statements to be done for each alternative.
Suppose one needs several alternatives instead of two. In that case syntax looks is:

if logical expression 1
statement 1
elseif logical expression 2
statement 2
.
.
elseif logical expresion n
statement n
else
statement n+1
end

Only one of the alternatives must be true otherwise the final statement n+1 will be performed.

Example 4:

We will now examplify this with a m-file. It requests temperatures from the keyboard and if we enter negative values (in degree Celsius) the answer will be ‘Freezing cold’. Temperatures above 25 gives the answer ‘Very hot’ and for all other inputs the reply will be ‘Temperature is OK!’ . The example is of course a very swedish one.

% M-file temperature.m
temp=input('Give a temperature !')
if temp<=0
disp('Freezing cold!')
elseif temp>25
disp('Very hot!')
else
disp('Temperature is OK')
end

The m-file above can deal with all temperatures given with numbers. One limitation is that we need to call it every time we want to decide the temperature. This can be improved by using a while loop outside the if and else structure.
We can have nested structures in Matlab.

Switch in MATLAB

Another way of performing evaluation of conditions is to use a switch and case structure. When we execute the structure, one case are supposed to be true and the corresponding statement is done. On the other hand if none of the cases are equal to the expression, then otherwise is valid.
The syntax is:

switch expression
case value 1
statement 1
case value 2
statement 2
.
.
case value n
statement n
otherwise
statement n+1
end

Above the expression is compared to all the cases if none of these are equal with its corresponding value then otherwise. By using the case alternatives we can also compare with several values at the same time.

Pages: 1 2 3 4