# Practice Test

Click here for data and code files necessary to complete the practice problems.

1. The provided text file (`readings.txt`) contains a timestamp broken up into year, month, day, hour, minute, second, and timezone components, as well as a reading from a sensor. Write a script that reads the data from the file using the `textscan` function.

###### The script must:
• Convert the timestamps into single numeric serial date numbers stored in a variable named `dates`
• Ignore the timezone component of the timestamp by not reading it into the workspace
• Place numeric values for the readings in a single array of type `double` with a variable name of `readings`
2. ###### The provided data file (`viewdata.mat`) contains a 19-by-3 matrix `viewdata` with the following columns:
1. Video Length - Length in minutes for the video
2. Views - Number of times the video has been viewed
3. Minutes Watched - Total amount of time viewers spent watching the video
###### Write a MATLAB script to analyze the data to determine the effect of video length on viewer retention with the following steps:
• Load the saved viewership data into the MATLAB workspace.
• Create the column vector `viewPct` containing the percentage viewed for each variable according to the formula: Percentage viewed = (Minutes watched / Views) / (Video length).
• Create vectors containing the percentage viewed for short (Video length < 1.5), medium (1.5 <= Video length <= 2.25), and long (Video length > 2.25) videos).
• Calculate the average of the values contained in the vectors from the previous step, and store the results in the variables `shortPct`, `medPct`, and `longPct` respectively.
3. ###### The provided data file (`TData.mat`) contains temperature data reported by weather stations instance in time. The contents of the data file are:
1. The x-coordinates of the weather station locations (in km) stored in the column vector `x`
2. The y-coordinates of the weather station locations (in km) stored in the column vector `y`
3. The temperature data corresponding to the station locations (in degrees C) stored in the column vector `T`

Write a MATLAB script to load the data from the file and produce a contour plot similar to the one below with the temperature stations. Use the `griddata` function with `'v4'` as the interpolation method to estimate the temperatures for the x-y spatial grid points.

###### The plot must contain:
• contours spanning -5 degrees C to 5 degrees C in 1 degree increments
• a spatial extent of the contour plot corresponding to 0 < x < 675, 0 < y < 350; with a grid resolution (grid square size) of 1km-by-1km.
• labels for the contours with the `clabel function`
• markers for the weather station locations
5. ###### A function called `viewImage` accepts an image and a variable number of parameter name/value pairs as shown in the function heading:

`function viewImage (I, varargin)`

###### Write the validation code in the body of the function to produce an error message explaining the violation if any of the following conditions on the input arguments are not met:
• If variable input options exist, they must exist in pairs
• The names portion of the variable input must occur before the corresponding value. Names must be strings of the value `'zoom'`, `'rotate'`, or `'tilt'`
• The value portion for a variable input must be numeric

Do not write any implementation beyond the code required to perform the validation.

6. ###### The provided script `(diceSimulation.m)` runs a simulation of rolling six, 6-sided dice and calculating the sum. The simulation is repeated 1,000,000 times to create a histogram of the probability distribution as shown below.

The code produces the correct result, but can be improved to run faster. Rewrite the script such that the simulation produces the same results with 1,000,000 trials, a histogram of the results is created, and a faster execution time.

The figure illustrates on result from running the script. Solutions should have a similar distribution.

###### The figure must contain:
• an x-axis with a minimum value of 0 and a maximum value of 4
• a plot of the position vector as a solid blue line
• a left y-axis colored in blue with a minimum value of -5 and a maximum value of 5
• a plot of the velocity vector as a dashed black line
• a right y-axis colored in black with a minimum value of -0.5 and a maximum value of +0.5
• a right y-axis colored in black with a minimum value of -0.5 and a maximum value of +0.5
• a title reading "Impact Data" as shown in the figure
• a legend in the top center of the axes with the correct label for each plot
###### Write the callback functions for the slider controls to update the plot. The callbacks must:
• Update the plot with the new amplitude or frequency
• Update the display of the amplitude and frequency values (tag names `edtAmplitude` and `edtFrequency` respectively.

Additionally, display a plot with the default values for amplitude and frequency upon starting the application.