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
A marketing specialist determines that when a certain product is released, the number of social media references to it can be modeled by...
can you please answer this in an excel file.
Select any two phases in SDLC (System Development Life Cycle) and then write a brief reflection on both of chosen phases within 300 words.
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.
Recommended textbooks for you
Text book image
College Algebra
Algebra
ISBN:9781938168383
Author:Jay Abramson
Publisher:OpenStax
Text book image
Mathematics For Machine Technology
Advanced Math
ISBN:9781337798310
Author:Peterson, John.
Publisher:Cengage Learning,
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