Recently I taught a volunteer class to professional engineers on MATLAB. Two of the most requested items of interest were

1. How do I read an excel file?

2. How do I do curve fitting?

We address the first question here. It is easy to read an excel file with the xlsread command but what do you with it once the file has been assigned. So we took a simple example of an excel spreadsheet where the first column consists of a student number and the second column has the examination scores of the students. You are asked to find the highest score.

The MATLAB program link is here.

The HTML version of the MATLAB program is here.

The Excel file used in the MATLAB program is here

**It is better to download (right click and save target) the program as single quotes in the pasted version do not translate properly when pasted into a mfile editor of MATLAB or you can read the html version for clarity and sample output.**

%% READING AN EXCEL SPREADSHEET IN MATLAB

% Language : Matlab 2008a

% Authors : Autar Kaw

% Last Revised : December 12, 2010

% Abstract: This program shows you how to read an excel file in MATLAB

% The example has student numbers in first column and their score in the

% second column

clc

clear all

disp(‘This program shows how to read an excel file in MATLAB’)

disp(‘Matlab 2008a’)

disp(‘Authors : Autar Kaw’)

disp(‘Last Revised : December 12, 2010’)

disp(‘http://numericalmethods.eng.usf.edu’)

disp(‘ ‘)

%% INPUTS

% We have two column data and it has headers in the first row.

% That is why we read the data from A2 to B32.

A=xlsread(‘c:\users\grades.xls’,’A2:B32′);

disp (‘The data read from the excel spreadsheet is’)

disp(A)

disp(‘ ‘)

%% SOLUTION

% Finding the number of rows and columns

sizem=size(A);

rows_A=sizem(1);

cols_A=sizem(2);

% Assigning the scores to a vector called score

for i=1:1:rows_A

score(i)=A(i,2);

end

% Using the max command to find the maximum score

% HW: Write your own function “max”

maxscore=max(score);

% Finding which student got the highest score

for i=1:1:rows_A

if score(i)==maxscore

student_no=i;

break;

end

% HW: What if more than one student scored the highest grade??

end

%% OUTPUT

disp(‘ ‘)

disp (‘OUTPUT’)

fprintf(‘Student Number# %g scored the maximum score of %g’,…

student_no,maxscore)

disp(‘ ‘)

This post is brought to you by

Subscribe to the blog via a reader or email to stay updated with this blog. Let the information follow you.