📖 Scenario: You work in a small store and keep track of daily sales in a CSV file. You want to read this file in MATLAB, process the data, and display useful information.
🎯 Goal: Learn how to read a CSV file in MATLAB, extract data, and display the total sales amount.
📋 What You'll Learn
Create a CSV file named sales.csv with product names and sales amounts.
Read the CSV file into MATLAB using readtable.
Calculate the total sales amount by summing the sales column.
Display the total sales amount using disp.
💡 Why This Matters
🌍 Real World
Stores and businesses often keep sales data in CSV files. MATLAB can read these files to analyze sales quickly.
💼 Career
Data analysts and engineers use MATLAB to process CSV data for reports and decision-making.
Progress0 / 4 steps
1
Create the CSV file sales.csv
Create a CSV file named sales.csv with these exact contents (including header): Product,Amount Apples,10 Bananas,15 Oranges,12
MATLAB
Hint
Use fopen to create the file, fprintf to write lines, and fclose to close the file.
2
Read the CSV file into a table
Use readtable to read the CSV file 'sales.csv' into a variable called salesData.
MATLAB
Hint
Use readtable('sales.csv') to load the CSV data into a table.
3
Calculate the total sales amount
Calculate the total sales amount by summing the Amount column of salesData and store it in a variable called totalSales.
MATLAB
Hint
Use sum(salesData.Amount) to add all amounts.
4
Display the total sales amount
Use disp to display the text 'Total sales amount:' followed by the value of totalSales.
MATLAB
Hint
Use disp(['Total sales amount: ', num2str(totalSales)]) to show the result.
Practice
(1/5)
1. Which MATLAB function is best suited to read numeric data from a CSV file into a matrix?
easy
A. csvread
B. readtable
C. readmatrix
D. load
Solution
Step 1: Understand the data type
Numeric data is best handled as a matrix in MATLAB.
Step 2: Choose the appropriate function
readmatrix is designed to read numeric CSV data directly into a matrix.
Final Answer:
readmatrix -> Option C
Quick Check:
Numeric CSV data = readmatrix [OK]
Hint: Use readmatrix for numeric CSV files quickly [OK]
Common Mistakes:
Using readtable for purely numeric data
Using load which is for MAT files
Confusing csvread with readmatrix (csvread is older)
2. Which of the following is the correct syntax to write a matrix A to a CSV file named data.csv in MATLAB?
easy
A. writetable('data.csv', A);
B. writecsv(A, 'data.csv');
C. csvwrite(A, 'data.csv');
D. writematrix(A, 'data.csv');
Solution
Step 1: Identify the correct function for matrix writing
writematrix is the modern function to write numeric matrices to CSV files.
Step 2: Check syntax correctness
The syntax writematrix(A, 'data.csv'); correctly specifies the matrix and filename.
Final Answer:
writematrix(A, 'data.csv'); -> Option D
Quick Check:
Write matrix to CSV = writematrix [OK]
Hint: Use writematrix(matrix, filename) to save numeric CSV [OK]
Common Mistakes:
Using non-existent function writecsv
Using csvwrite which is outdated
Using writetable for numeric matrix without conversion
3. What will be the output of the following MATLAB code?
A = [1, 2; 3, 4];
writematrix(A, 'test.csv');
B = readmatrix('test.csv');
disp(B);
medium
A. [1 2; 3 4]
B. [1 2 3 4]
C. [1; 2; 3; 4]
D. Error: File not found
Solution
Step 1: Write matrix to CSV
The matrix A is saved as a 2x2 CSV file with rows [1,2] and [3,4].
Step 2: Read matrix from CSV
readmatrix reads the CSV back into the same 2x2 numeric matrix.
Final Answer:
[1 2; 3 4] -> Option A
Quick Check:
Write and read matrix preserves shape [OK]
Hint: writematrix and readmatrix keep matrix shape intact [OK]
Common Mistakes:
Expecting a single row vector output
Confusing disp output format with array shape
Assuming file read error without saving first
4. Consider this MATLAB code snippet:
T = readtable('data.csv');
writetable(T, 'output.csv');
If data.csv contains mixed numeric and text data, what is a common error to watch for?
medium
A. Using csvwrite to write tables causes incorrect output
B. Using writetable on a numeric matrix causes syntax error
C. Forgetting to close the file after reading causes runtime error
D. Using readmatrix instead of readtable causes syntax error
Solution
Step 1: Understand data type in CSV
Mixed numeric and text data require table format to preserve all data correctly.
Step 2: Identify correct write function
csvwrite only supports numeric data and will fail or produce incorrect output for tables.
Final Answer:
Using csvwrite to write tables causes incorrect output -> Option A
Quick Check:
csvwrite not for tables = error [OK]
Hint: Use writetable for mixed data, not csvwrite [OK]
Common Mistakes:
Using readmatrix for mixed data losing text
Assuming file must be closed manually in MATLAB
Using writetable on numeric matrix without conversion
5. You have a CSV file with columns: Name (text), Age (numeric), and Score (numeric). You want to read it, increase all Score values by 10%, and save the updated data back to a CSV file. Which MATLAB code snippet correctly does this?
hard
A. data = csvread('file.csv');
data(:,3) = data(:,3) * 1.1;
csvwrite('file.csv', data);
B. T = readtable('file.csv');
T.Score = T.Score * 1.1;
writetable(T, 'file.csv');
C. T = readtable('file.csv');
T(:,3) = T(:,3) * 1.1;
writetable(T, 'file.csv');
D. A = readmatrix('file.csv');
A(:,3) = A(:,3) * 1.1;
writematrix(A, 'file.csv');
Solution
Step 1: Read mixed data correctly
Use readtable to read CSV with text and numeric columns preserving all data types.
Step 2: Update the numeric Score column
Access the Score column by name and multiply by 1.1 to increase by 10%.
Step 3: Save updated table back to CSV
Use writetable to save the modified table preserving text and numeric data.
Final Answer:
T = readtable('file.csv');
T.Score = T.Score * 1.1;
writetable(T, 'file.csv'); -> Option B