MATLAB: A Practical Introduction to Programming and Problem Solving
MATLAB: A Practical Introduction to Programming and Problem Solving
5th Edition
ISBN: 9780128154793
Author: Stormy Attaway Ph.D. Boston University
Publisher: Elsevier Science
bartleby

Videos

Question
Book Icon
Chapter 8, Problem 27E
To determine

To write:

A function to read and write the data from the data file, calculate intensities and write another function to print all of the information in a nearly organized table, add a function to calculate the average intensity of the storms, add a function to the program to print all of the information given on the most intense storm.

Expert Solution & Answer
Check Mark

Answer to Problem 27E

Solution:

The file is,

%MATLAB code to load the data and create a data structure file.

%structure file.

stormdata = [321 2.4 1.5]

save stormdata.dat stormdata -ascii

stormdata = [111 3.3 12.1]

save stormdata.dat stormdata -ascii

clear

load stormdata.dat

%end of function file

%The function file should be placed in the same folder

The function file is,

%MATLAB code to print a table between stormdatavector and intensity.

%function file.

function tableprint(stormdatavector, intensity)

for i = 1:length(stormdatavector)

fprintf('%20.1f\t%20.1f\t%20.1f|t%20f\n', stormdatavector(i).locationcode, stormdatavector(i).rainfallamount, stormdatavector(i).stormduration, intensity(i))

end

end

%end of function file

%The function file should be placed in the same folder.

The function file is,

%MATLAB code to calculate the average intensity.

%function file.

function avgintensity(intensity)

intensitysum = 0;

for i = 1:length(intensity)

intensitysum = intensitysum + intensity(i);

end

avgintensity = intensitysum/length(intensity);

fprintf('Average intensity of storm is %f\n', avgintensity)

end

%end of function file

%The function file should be placed in the same folder.

The function file is,

%MATLAB code to find the information about mostintensestorm.

%function file.

function mostintensestorm(stormvector, intensity)

for i = 1:length(intensity)

for j = i + 1:length(intensity)

if intensity(i)>intensity(j)

temp = intensity(i);

intensity(i) = intensity (j);

intensity(j) = temp;

end

end

end

fprintf('the information of most intense storm is:%f\n', intensity(length(intensity)))

tempindex = index(stormvector, intensity);

fprintf('the index of most intense storm is:%d\n', tempindex);

fprintf('%20s|t%20s\t%20s\t%20s\n','location code','rainfall amount','storm duration','intensities')

fprintf('%20.1f\t%20.1f\t%20.1f\t%20f\n', stormvector(tempindex).locationcode, stormvector(tempindex).rainfallamount, stormvector(tempindex).stormduration, intensity(length(intensity)))

end

function index = index(stormvector, intensity)

for i = 1:length(stormvector)

if intensity(length(intensity)) ==stormvector(i).rainfallamount/stormvector(i).stormduration

index = i;

break;

end

end

end

%end of function file

%The function file should be placed in the same folder.

The function file is,

%MATLAB code to find the output.

%function file.

fprintf('%20s\t%20s\t%20s\t%20s\n','location code','rainfall amount','storm duration','intensities')

for i = 1:size(stormdata, 1)

for j = 1:length(stormdata(i))

stormvector(i) = struct('locationcode', stormdata(i, j),'rainfallamount', stormdata(i, j+1),'stormduration', stormdata(i, j+2));

intensity(i) = stormvector(i).rainfallamount/stormvector(i).stormduration;

end

end

tableprint(stormvector, intensity)

avgintensity(intensity)

mostintensestorm(stormvector, intensity)

%end of function file

%The function file should be placed in the same folder.

Explanation of Solution

The output is,

The average intensity is,

intensities=0.2727

The location code is,

locationcode=111.0

The rainfall amount is,

rainfallamount=3.3

MATLAB Code:

clc

clear all

close all

%MATLAB code to load the data and create a data structure file.

%structure file.

stormdata = [321 2.4 1.5]

save stormdata.dat stormdata -ascii

stormdata = [111 3.3 12.1]

save stormdata.dat stormdata -ascii

clear

load stormdata.dat

%end of structure file

%The file should be placed in the same folder

output;

%The function file should be placed in the same folder

%MATLAB code to print a table between stormdatavector and intensity.

%function file.

function tableprint(stormdatavector, intensity)

for i = 1:length(stormdatavector)

fprintf('%20.1f\t%20.1f\t%20.1f|t%20f\n', stormdatavector(i).locationcode, stormdatavector(i).rainfallamount, stormdatavector(i).stormduration, intensity(i))

end

end

%end of function file

%The function file should be placed in the same folder.

%MATLAB code to calculate the average intensity.

%function file.

function avgintensity(intensity)

intensitysum = 0;

for i = 1:length(intensity)

intensitysum = intensitysum + intensity(i);

end

avgintensity = intensitysum/length(intensity);

fprintf('Average intensity of storm is %f\n', avgintensity)

end

%end of function file

%The function file should be placed in the same folder.

%MATLAB code to find the information about mostintensestorm.

%function file.

function mostintensestorm(stormvector, intensity)

for i = 1:length(intensity)

for j = i + 1:length(intensity)

if intensity(i)>intensity(j)

temp = intensity(i);

intensity(i) = intensity (j);

intensity(j) = temp;

end

end

end

fprintf('the information of most intense storm is:%f\n', intensity(length(intensity)))

tempindex = index(stormvector, intensity);

fprintf('the index of most intense storm is:%d\n', tempindex);

fprintf('%20s|t%20s\t%20s\t%20s\n','location code','rainfall amount','storm duration','intensities')

fprintf('%20.1f\t%20.1f\t%20.1f\t%20f\n', stormvector(tempindex).locationcode, stormvector(tempindex).rainfallamount, stormvector(tempindex).stormduration, intensity(length(intensity)))

end

function index = index(stormvector, intensity)

for i = 1:length(stormvector)

if intensity(length(intensity)) ==stormvector(i).rainfallamount/stormvector(i).stormduration

index = i;

break;

end

end

end

%end of function file

%The function file should be placed in the same folder.

%MATLAB code to find the output.

%function file.

fprintf('%20s\t%20s\t%20s\t%20s\n','location code','rainfall amount','storm duration','intensities')

for i = 1:size(stormdata, 1)

for j = 1:length(stormdata(i))

stormvector(i) = struct('locationcode', stormdata(i, j),'rainfallamount', stormdata(i, j+1),'stormduration', stormdata(i, j+2));

intensity(i) = stormvector(i).rainfallamount/stormvector(i).stormduration;

end

end

tableprint(stormvector, intensity)

avgintensity(intensity)

mostintensestorm(stormvector, intensity)

%end of function file

%The function file should be placed in the same folder.

Save the MATLAB script with name, chapter8_54793_8_27E.m and function files with names tableprint.m, avgintensity.m, mostintensestorm.m and output.m in the current folder. Execute the functions by typing the functions name at the command window to generate output.

Result:

The result is,

MATLAB: A Practical Introduction to Programming and Problem Solving, Chapter 8, Problem 27E

Therefore, the result is stated above.

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Need help on letters A-G (all questions). Thank you.
Johnson Filtration, Inc. provides maintenance service for water-filtration systems. Suppose that in addition to information on the number of months since the machine was serviced and whether a mechanical or an electrical repair was necessary, the managers obtained a list showing which repairperson performed the service. The revised data follow. Click on the datafile logo to reference the data. DATA file Repair Time Months Since in Hours Last Service Type of Repair Repairperson 2.9 Electrical Dave Newton 3.0 Mechanical Dave Newton 4.8 8. Electrical Bob Jones 1.8 Mechanical Dave Newton 2.9 Electrical Dave Newton 4.9 Electrical Bob Jones 4.2 6. Mechanical Bob Jones 4.8 8. Mechanical Bob Jones 4.4 4. Electrical Bob Jones 4.5 Electrical Dave Newton a. Ignore for now the months since the last maintenance service (1 ) and the repairperson who performed the service. Develop the estimated simpe linear regression equation to predict the repair time (y) given the type of repair (2 ). Recall that…
According to a climate data center, the highest temperatures (in degrees Fahrenheit) ever recorded in a certain country (as of June 15, 2017) were as follows. Present these data in a double-stem display. Click the icon to view the data. Construct a double-stem display for the given data. (Use a comma to separate answers as needed.) i Data Table Full data setE 112 100 107 121 120 103 116 111 106 112 128 115 115 113 121 120 115 116 124 119 132 119 116 110 105 112 122 119 121 110 109 112 119 115 115 112 112 128 112 113 108 107 106 104 111 112 108 112 112 116 Print Done Enter your answer in the edit fields and then click Ched Check Answer All parts showing Clear All 1|0 represent 100, double key represents two times. re to search
Knowledge Booster
Background pattern image
Statistics
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, statistics and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Elementary Geometry For College Students, 7e
Geometry
ISBN:9781337614085
Author:Alexander, Daniel C.; Koeberlein, Geralyn M.
Publisher:Cengage,
Text book image
Algebra: Structure And Method, Book 1
Algebra
ISBN:9780395977224
Author:Richard G. Brown, Mary P. Dolciani, Robert H. Sorgenfrey, William L. Cole
Publisher:McDougal Littell
Lecture 46: Eigenvalues & Eigenvectors; Author: IIT Kharagpur July 2018;https://www.youtube.com/watch?v=h5urBuE4Xhg;License: Standard YouTube License, CC-BY
What is an Eigenvector?; Author: LeiosOS;https://www.youtube.com/watch?v=ue3yoeZvt8E;License: Standard YouTube License, CC-BY