Bird
Raised Fist0
MATLABdata~20 mins

Excel file reading and writing in MATLAB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Excel File Mastery in MATLAB
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this MATLAB code reading an Excel file?
Consider the following MATLAB code that reads data from an Excel file named 'data.xlsx'. What will be the value of variable data after running this code?
MATLAB
data = readtable('data.xlsx');
disp(data(1, :));
ADisplays the first row of the Excel file as a table with column headers
BThrows an error because 'readtable' cannot read Excel files
CDisplays the entire Excel file content as a numeric matrix
DDisplays only the first cell value of the Excel file
Attempts:
2 left
💡 Hint
The function readtable reads Excel files into a table with headers.
❓ Predict Output
intermediate
2:00remaining
What does this MATLAB code write to an Excel file?
Given the MATLAB code below, what will be the content of the Excel file 'output.xlsx' after execution?
MATLAB
T = table([1;2;3], {'A';'B';'C'}, 'VariableNames', {'Numbers', 'Letters'});
writecell({'Header1', 'Header2'; 10, 20}, 'output.xlsx');
writetable(T, 'output.xlsx', 'Sheet', 1, 'WriteMode', 'append');
AThe Excel file will have one sheet with the cell array overwritten by the table
BThe Excel file will have one sheet with the cell array in the first two rows and the table appended below
CThe code will cause an error because 'WriteMode' is not a valid option
DThe Excel file will have two sheets: first with the cell array and second with the table
Attempts:
2 left
💡 Hint
The 'WriteMode' option 'append' adds data below existing content in the same sheet.
🔧 Debug
advanced
2:00remaining
Why does this MATLAB code fail to read the Excel file?
This MATLAB code attempts to read an Excel file but throws an error. What is the cause?
MATLAB
data = xlsread('missingfile.xlsx');
AThe file 'missingfile.xlsx' does not exist in the current folder or path
BThe file is open in another program, causing a permission error
CThe code is missing a sheet name argument
DThe function 'xlsread' is deprecated and cannot read Excel files
Attempts:
2 left
💡 Hint
Check if the file exists in the folder where MATLAB is running.
📝 Syntax
advanced
2:00remaining
Which option correctly writes a MATLAB table to an Excel file with a custom sheet name?
Select the MATLAB code snippet that correctly writes the table T to an Excel file named 'results.xlsx' on a sheet called 'Summary'.
MATLAB
T = table([10;20], {'X';'Y'}, 'VariableNames', {'Value', 'Category'});
Awritetable('results.xlsx', T, 'Sheet', 'Summary');
Bwritetable(T, 'results.xlsx', 'SheetName', 'Summary');
Cwritetable(T, 'results.xlsx', 'Sheet', 'Summary');
Dwritetable(T, 'results.xlsx', 'Sheet', 1, 'SheetName', 'Summary');
Attempts:
2 left
💡 Hint
The correct option uses the 'Sheet' name-value pair to specify the sheet.
🚀 Application
expert
3:00remaining
How many rows will the variable data contain after this code runs?
This MATLAB code reads data from an Excel file 'sales.xlsx' that has 100 rows and 5 columns. The code filters rows where the 'Amount' column is greater than 500. How many rows will data contain?
MATLAB
T = readtable('sales.xlsx');
data = T(T.Amount > 500, :);
A5 rows, equal to the number of columns in the file
B0 rows, because the condition is invalid
C100 rows, same as the original file
DThe number of rows in <code>data</code> equals the count of rows in 'sales.xlsx' where 'Amount' > 500
Attempts:
2 left
💡 Hint
The code filters rows based on the 'Amount' column values.

Practice

(1/5)
1. Which MATLAB function is used to read data from an Excel file into a table?
easy
A. csvread
B. xlswrite
C. readtable
D. load

Solution

  1. Step 1: Identify the function for reading Excel files

    MATLAB provides readtable to import Excel data as a table.
  2. Step 2: Differentiate from other functions

    xlswrite writes data, csvread reads CSV files, and load loads MAT files.
  3. Final Answer:

    readtable -> Option C
  4. Quick Check:

    Excel read function = readtable [OK]
Hint: Use readtable to import Excel data as tables quickly [OK]
Common Mistakes:
  • Confusing readtable with xlswrite
  • Using csvread for Excel files
  • Trying to use load for Excel data
2. Which of the following is the correct syntax to write a table T to an Excel file named data.xlsx?
easy
A. readtable('data.xlsx', T)
B. write(T, 'data.xlsx')
C. xlsread('data.xlsx', T)
D. writetable(T, 'data.xlsx')

Solution

  1. Step 1: Identify the correct function for writing tables

    The function writetable writes tables to Excel files.
  2. Step 2: Check the syntax

    The syntax is writetable(T, 'filename.xlsx'). Other options are either reading functions or incorrect.
  3. Final Answer:

    writetable(T, 'data.xlsx') -> Option D
  4. Quick Check:

    Write table syntax = writetable(T, filename) [OK]
Hint: Use writetable with table and filename to save Excel files [OK]
Common Mistakes:
  • Using write instead of writetable
  • Confusing xlsread with writing
  • Passing table as second argument to readtable
3. What will be the output of the following MATLAB code?
T = readtable('sales.xlsx', 'Sheet', 'Q1', 'Range', 'A1:C5');
disp(height(T));
medium
A. 4
B. 5
C. 3
D. 6

Solution

  1. Step 1: Understand the readtable range and header

    The range 'A1:C5' includes 5 rows, but the first row is usually the header.
  2. Step 2: Calculate the number of data rows

    Since the first row is header, the data rows are 5 - 1 = 4.
  3. Final Answer:

    4 -> Option A
  4. Quick Check:

    Rows read minus header = 4 [OK]
Hint: Remember first row is header, so data rows = total rows - 1 [OK]
Common Mistakes:
  • Counting header row as data
  • Confusing range size with number of rows
  • Assuming no header row present
4. Identify the error in this MATLAB code snippet that tries to write a table T to the second sheet of results.xlsx:
writetable(T, 'results.xlsx', 'Sheet', 2, 'Range', 'B2');
medium
A. The 'Sheet' parameter must be a string, not a number
B. The 'Range' parameter cannot be used with writetable
C. The filename must include full path
D. writetable cannot write to Excel files

Solution

  1. Step 1: Check the 'Sheet' parameter type

    In writetable, the 'Sheet' argument should be a string with sheet name, not a numeric index.
  2. Step 2: Validate other parameters

    'Range' is valid, filename can be relative, and writetable supports Excel files.
  3. Final Answer:

    The 'Sheet' parameter must be a string, not a number -> Option A
  4. Quick Check:

    Sheet name must be string in writetable [OK]
Hint: Use sheet names as strings, not numbers, in writetable [OK]
Common Mistakes:
  • Passing sheet number instead of name
  • Thinking Range is invalid for writetable
  • Assuming filename needs full path always
5. You want to read only the numeric data from the range B2:D10 in sheet Data of metrics.xlsx into MATLAB as a table. Which code snippet correctly does this and then writes only the first 5 rows back to a new Excel file subset.xlsx?
hard
A. T = readmatrix('metrics.xlsx', 'Sheet', 'Data', 'Range', 'B2:D10'); writetable(T(1:5,:), 'subset.xlsx');
B. T = readtable('metrics.xlsx', 'Sheet', 'Data', 'Range', 'B2:D10'); writetable(T(1:5,:), 'subset.xlsx');
C. T = readtable('metrics.xlsx', 'Sheet', 'Data', 'Range', 'B2:D10'); writetable(T(1:5));
D. T = readmatrix('metrics.xlsx', 'Sheet', 'Data', 'Range', 'B2:D10'); writetable(T, 'subset.xlsx');

Solution

  1. Step 1: Read numeric data as a table

    Use readtable with 'Sheet' and 'Range' to get data as a table.
  2. Step 2: Write first 5 rows to new Excel file

    Use writetable with T(1:5,:) to write first 5 rows correctly.
  3. Final Answer:

    T = readtable('metrics.xlsx', 'Sheet', 'Data', 'Range', 'B2:D10'); writetable(T(1:5,:), 'subset.xlsx'); -> Option B
  4. Quick Check:

    readtable + subset rows + writetable = T = readtable('metrics.xlsx', 'Sheet', 'Data', 'Range', 'B2:D10'); writetable(T(1:5,:), 'subset.xlsx'); [OK]
Hint: Use readtable with range, then slice rows before writetable [OK]
Common Mistakes:
  • Using readmatrix but then writetable on matrix
  • Omitting filename in writetable
  • Not slicing rows correctly before writing
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard