Bird
Raised Fist0
MATLABdata~10 mins

String formatting (sprintf) in MATLAB - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to format the number 10 as a string using sprintf.

MATLAB
str = sprintf([1], 10);
Drag options to blanks, or click blank then click option'
A'%d'
B'%s'
C'10'
D'%f'
Attempts:
3 left
💡 Hint
Common Mistakes
Using '%s' which is for strings, not numbers.
Putting the number directly as a string instead of using a format specifier.
2fill in blank
medium

Complete the code to format the number 3.14159 with two decimal places using sprintf.

MATLAB
str = sprintf([1], 3.14159);
Drag options to blanks, or click blank then click option'
A'%s'
B'%.2f'
C'%d'
D'%e'
Attempts:
3 left
💡 Hint
Common Mistakes
Using '%d' which formats as integer and loses decimals.
Using '%e' which formats in exponential notation.
3fill in blank
hard

Fix the error in the code to correctly format the string with a name and age.

MATLAB
str = sprintf('Name: %s, Age: [1]', 'Alice', 30);
Drag options to blanks, or click blank then click option'
A%d
B%s
C%f
D%c
Attempts:
3 left
💡 Hint
Common Mistakes
Using '%s' which expects a string, causing a mismatch.
Using '%f' which formats floating-point numbers.
4fill in blank
hard

Fill both blanks to format a floating number with 3 decimals and a string.

MATLAB
str = sprintf('Value: [1], Status: [2]', 12.34567, 'OK');
Drag options to blanks, or click blank then click option'
A%.3f
B%d
C%s
D%e
Attempts:
3 left
💡 Hint
Common Mistakes
Using '%d' for the floating number, which truncates decimals.
Using '%f' without precision, showing too many decimals.
5fill in blank
hard

Fill all three blanks to format a string with a name, integer age, and floating-point score with 1 decimal.

MATLAB
str = sprintf('Name: [1], Age: [2], Score: [3]', 'Bob', 25, 88.765);
Drag options to blanks, or click blank then click option'
A%s
B%d
C%.1f
D%f
Attempts:
3 left
💡 Hint
Common Mistakes
Using '%f' without precision for the score.
Using '%s' for the age, causing type mismatch.

Practice

(1/5)
1. What does the sprintf function in MATLAB do?
easy
A. Creates a formatted string by inserting values into a template
B. Reads input from the user
C. Plots data on a graph
D. Saves variables to a file

Solution

  1. Step 1: Understand the purpose of sprintf

    sprintf is used to create text with values inserted in a specific format.
  2. Step 2: Compare options to function behavior

    Only Creates a formatted string by inserting values into a template describes creating formatted strings, which matches sprintf's role.
  3. Final Answer:

    Creates a formatted string by inserting values into a template -> Option A
  4. Quick Check:

    sprintf formats strings = A [OK]
Hint: Remember: sprintf formats text, not input or files [OK]
Common Mistakes:
  • Confusing sprintf with input functions
  • Thinking sprintf plots graphs
  • Assuming sprintf saves files
2. Which of the following is the correct syntax to format an integer variable num using sprintf in MATLAB?
easy
A. str = sprintf('%s', num);
B. str = sprintf('%c', num);
C. str = sprintf('%d', num);
D. str = sprintf('%f', num);

Solution

  1. Step 1: Identify format specifier for integers

    The format specifier %d is used for integers in sprintf.
  2. Step 2: Match specifier with variable type

    Since num is an integer, %d is correct; others are for strings, floats, or characters.
  3. Final Answer:

    str = sprintf('%d', num); -> Option C
  4. Quick Check:

    Integer format = %d = D [OK]
Hint: Use %d for integers, %s for strings, %f for floats [OK]
Common Mistakes:
  • Using %s for numbers
  • Using %f for integers
  • Using %c for non-character data
3. What is the output of the following MATLAB code?
str = sprintf('Value: %0.2f', 3.14159); disp(str);
medium
A. Value: 3.1
B. Value: 3.14
C. Value: 3.14159
D. Value: 03.14

Solution

  1. Step 1: Understand the format specifier %0.2f

    This means a floating-point number with 2 digits after the decimal point, padded with zeros if needed.
  2. Step 2: Apply formatting to 3.14159

    Rounded to 2 decimals, 3.14159 becomes 3.14, no extra zero padding before the number.
  3. Final Answer:

    Value: 3.14 -> Option B
  4. Quick Check:

    %.2f rounds float to 2 decimals = Value: 3.14 [OK]
Hint: %.2f rounds float to 2 decimals in sprintf [OK]
Common Mistakes:
  • Expecting full decimal without rounding
  • Confusing zero padding before decimal
  • Ignoring rounding rules
4. Identify the error in this MATLAB code:
str = sprintf('Name: %s, Age: %d', 25, 'John');
medium
A. sprintf cannot format multiple variables
B. Missing semicolon at the end
C. Incorrect format specifier for string
D. The order of variables does not match format specifiers

Solution

  1. Step 1: Check format specifiers and variable order

    The format expects a string first (%s) then an integer (%d), but variables are 25 (int) then 'John' (string).
  2. Step 2: Identify mismatch cause

    Variables are swapped, causing wrong data types for specifiers.
  3. Final Answer:

    The order of variables does not match format specifiers -> Option D
  4. Quick Check:

    Variable order must match specifiers = A [OK]
Hint: Match variable order exactly to format specifiers [OK]
Common Mistakes:
  • Swapping variable order
  • Ignoring type mismatch
  • Assuming sprintf auto-corrects order
5. You want to create a formatted string showing a product name and price with 2 decimals, like "Product: Laptop, Price: $999.99". Which sprintf call correctly formats name = 'Laptop' and price = 999.987?
hard
A. sprintf('Product: %s, Price: $%0.2f', name, price)
B. sprintf('Product: %s, Price: $%d', price, name)
C. sprintf('Product: %s, Price: $%f', name, price)
D. sprintf('Product: %s, Price: $%.2d', name, price)

Solution

  1. Step 1: Identify correct format specifiers

    %s for string name, %0.2f for float price with 2 decimals.
  2. Step 2: Check variable order and formatting

    sprintf('Product: %s, Price: $%0.2f', name, price) uses correct order and formats price to 2 decimals, rounding 999.987 to 999.99.
  3. Final Answer:

    sprintf('Product: %s, Price: $%0.2f', name, price) -> Option A
  4. Quick Check:

    String + float with 2 decimals = B [OK]
Hint: Use %s for strings and %0.2f for 2-decimal floats [OK]
Common Mistakes:
  • Swapping variable order
  • Using %d for floats
  • Using incorrect precision specifier
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