Skip to main content

Prompt the user to enter a number, a random number of times using Matlab

Problem

Write a script that will:
  •  Generate a random integer in the range from 2 to 5
  •  Loop that many times to
  •  Prompt the user for a number
  •  Print the sum of the numbers entered thus far with one decimal place
There are many signal processing applications. Voltages, currents, and sounds
are all examples of signals studied in a diverse range of disciplines such as
biomedical engineering, acoustics, and telecommunications. Sampling discrete data
points from a continuous signal is an important concept.

Solution

This problem has been taken from the book A practical introduction to Matlab by Stormy Attaway
We will solve this problem by using Matlab for loop and Matlab while loop. Also we will generate a random integer in the matlab using the rand function in Matlab within a given interval.
Some of the concepts you need to know to solve this problem are as follows:
1) rand function in Matlab
2) for loop , youtube for loop
3) while loop, youtube while loop
4) colon operator, youtube colon operator
5) request user input with matlab
6) variables in matlab
7) frprintf in matlab

Program

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
r = 2 + (5-2).*rand(1,1);

sum = 0;

for i = [1:r]
    number = input('Enter the number: ');
    sum = sum+number;
end

fprintf('The sum is %.1f for the numbers you have entered!\n',sum)
I have saved this program as prompt_input.m on my local computer.

Explanation

Line 1: Before I start explaining this line type the following code in the command prompt:
>>help rand
Read what ever you have been displayed on the screen. What you fill find is something which tells about rand. Please don't leave any part of what is displayed as because it is small. It will be really helpful for you in the future.
If you have read that paragraph then you should understand everything except the period(.) before the asterisk. As rand(x,y) generates a matrix of size x by y, we cannot directly multiply a number to it. If you want to do scalar multiplication or simply multiply a number with a matrix then you will have to put a period in front of the asterisk saying Matlab that it is a matix and do scalar multiplication. All the remaining you should read from the help command!(Atleast for understanding this program you will read the document generated. Please read it, it will surely help you a lot in future).
Line 3: We are creating a variable with a value 0;
Line 5-8: Let us understand this part by looking at iteration by iteration. Also let us assume that the random number generated is 3.
When the first iteration starts the value of i is 1, and the line 6 gets executed asking the user to enter a value. If the user enters a number say 15. Now the on line seven the value of sum is changed to the previous value of the sum and the number the user has entered just before on line 6. Here in the first iteration the value becomes 15(sum+number = 0+15).
Now in the second iteration the value of i becomes 2 and now again let say the user has entered a value of 20 for this prompt. Now on line 7 the value of the sum becomes 35(sum+number = 15+20)
In this way the loop will be executed a random number of times in total and the random number is decided by a computer. But for this example we have assumed the random number to be 3 and thus the program will iterate 3 times.
Line 10: We are displaying the value of the sum of all the numbers for the numbers that the user has entered.

Program with while loop



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
r = 2 + (5-2).*rand(1,1);

i = 1;
sum = 0;

while i<=r
    number = input('Enter the number: ');
    sum = sum+number;
    i = i+1;
end

fprintf('The sum is %.1f for the numbers you have entered\n',sum)
I have saved this program as prompt_input_while.m on my local computer.

Explanation for with while loop

Line 1: This is same as the previous program
Line 3: We are creating a variable i = 1 to be used in the while loop.
Line 4: This is same as the previous program 
Line 6-10: We will understand this program iteration by iteration taking an example. Consider that the random number that the computer has generated is 2.
Now in the first iteration i = 1(see line 3) and 1<=2 and as the condition satisfies and the while loop gives green signal to execute code inside its stomach!
As in the previous program the value of number is asked its is added to the sum variable. 
But the magic can be seen from here, the value of i is increased by one and the second iteration starts. Now the value of i is checked again with r, remember that the value has changed from 1 to 2. But again we see that the condition gets satisfied and the body code gets executed. But for the third time the value of i becomes 3 and the condition is not met and that while loop is not executed again anymore.
Line 12: Finally the value is displayed to the user in neat and clear format.

Guys if you have not understood the loop please don't hesitate to contact me or comment your email id I will help you personally. When I studied the loops for the first time I couldn't understand for a lot of time until my teacher explained me in a very clear spoon feeding format.

Try it yourself

1) Write a program to ask the user to enter any two values in the starting. We are not going to use them for summation, instead we are going to use them as our range of random number value that can be generated. Speaking according to the above program you will ask the user to enter the values instead of 2 and 5 and thus not assuming yourself.

Input/Output

Prompting the user to enter a number for random number of times using Matlab
Prompting the user to enter a number for random number of times using Matlab

Summary

As always thanks for stopping by. Please do leave a comment below or contact me if you have a doubt or didn't understand anything or have a suggestion. You can contact me here: Contact me.
The above program was high lighted using hilite.me
Keywords: Matlab applications, for loop, while loop, iterations

Popular posts from this blog

Making a quiz web app with python and flask

Edit : When you are creating a web app with h tml templates, then y ou will have to sa ve the html file in templates folder in the Current Wor ki ng Directory( CWD). If you save the file in the C W D directl y you will get a TemplateNotFound error. Thank you Udhay for pointing it out.   In this post we will create a quiz website using python . I will be using the flask framework . After reading this tutorial you will learn form submission , flask templates , python code in flask templates , shuffling the questions and options with the random module and few others.  Please note that this tutorial is not big as it seems to be. Some of the code has been rewritten to maintain consistency and also font size is somewhat big so that your eyes won't get stressed reading this tutorial. Also the content has not occupied the full width of the page. In this tutorial I am assuming that you are having a very basic understanding of the flask framework . Please refer the documentation

Problem 11 Project Euler Solution with python

Largest product in a grid In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07

Problem 60 Project Euler Solution with python

Prime pair sets The primes 3, 7, 109, and 673, are quite remarkable. By taking any two primes and concatenating them in any order the result will always be prime. For example, taking 7 and 109, both 7109 and 1097 are prime. The sum of these four primes, 792, represents the lowest sum for a set of four primes with this property. Find the lowest sum for a set of five primes for which any two primes concatenate to produce another prime. This problem is j u st a brute force problem. If you have come here because you don't know the limit upto which you will h ave to gener ate the prime numbers t hen go ahe ad and t r y with 10,000 . When I first start ed solving the problem I chose 1 million(beca use most of the problem s on project E uler have this limit ), but it took very long for the computer to fin d the solution. After searching on the internet then I found many people choosing 10, 000 so I have changed my in put f rom 1 million to 10000 and the output was f ast. He