Bird
Raised Fist0
MATLABdata~10 mins

Converting between types in MATLAB - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Converting between types
Start with a value
↓
Choose target type
↓
Apply conversion function
↓
Get new value in target type
↓
Use or display converted value
↓
End
Start with a value, pick the type you want, convert it using a function, then use the new value.
Execution Sample
MATLAB
x = 5.7;
y = int32(x);
disp(y);
Convert a decimal number 5.7 to an integer type and display it.
Execution Table
StepVariableValue BeforeActionValue AfterOutput
1xundefinedAssign 5.75.7
2yundefinedConvert x to int325
3y5Display y55
💡 All steps completed, conversion done and value displayed.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
xundefined5.75.75.7
yundefinedundefined55
Key Moments - 2 Insights
Why does converting 5.7 to int32 give 5 and not 6?
Because int32 conversion in MATLAB truncates the decimal part, it does not round. See execution_table step 2 where 5.7 becomes 5.
What happens if you convert a string '123' to a number?
You can use a function like str2double to convert strings to numbers. Direct type casting like int32('123') does not convert the string to the number 123; instead, it converts the character codes. Use str2double for numeric conversion from strings.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of y after step 2?
A5.7
B6
C5
Dundefined
💡 Hint
Check the 'Value After' column for y at step 2 in the execution_table.
At which step is the value 5.7 assigned to variable x?
AStep 3
BStep 1
CStep 2
DNo step assigns 5.7
💡 Hint
Look at the 'Action' column for x in the execution_table.
If you convert x = 5.7 using double(x) instead of int32(x), what would y be?
A5.7
B5
C6
DError
💡 Hint
double(x) keeps the decimal part, unlike int32(x).
Concept Snapshot
Converting between types in MATLAB:
- Use functions like int32(), double(), char(), str2double()
- Numeric conversions may truncate decimals (int32)
- String to number: str2double()
- Converted value replaces original type
- Use disp() to show results
Full Transcript
This example shows how to convert a number from one type to another in MATLAB. We start with x assigned 5.7, a decimal number. Then we convert x to an integer type int32 and store it in y. The conversion truncates the decimal part, so y becomes 5. Finally, we display y which outputs 5. This process uses conversion functions like int32() to change types. Remember, converting decimals to integers cuts off the decimal part without rounding. Also, use special functions like str2double to convert strings to numbers. This helps when you want to change how MATLAB treats your data for calculations or display.

Practice

(1/5)
1. Which MATLAB function converts a string like '123.45' into a numeric double value?
easy
A. char
B. int32
C. str2double
D. num2str

Solution

  1. Step 1: Understand the input and desired output

    The input is a string representing a number, and we want a numeric double value.
  2. Step 2: Identify the correct conversion function

    str2double converts strings to double precision numbers, while int32 converts numbers to integers, char converts numbers to characters, and num2str converts numbers to strings.
  3. Final Answer:

    str2double -> Option C
  4. Quick Check:

    String to double = str2double [OK]
Hint: Use str2double for string to number conversion [OK]
Common Mistakes:
  • Using int32 on strings causes errors
  • Using char converts numbers to characters, not numbers
  • Using num2str converts numbers to strings, not the other way
2. Which of the following is the correct syntax to convert the number 3.7 to an integer in MATLAB?
easy
A. int32(3.7)
B. int(3.7)
C. integer(3.7)
D. toInt(3.7)

Solution

  1. Step 1: Recall MATLAB integer conversion functions

    MATLAB uses functions like int32, int16, etc., to convert numbers to integers.
  2. Step 2: Check syntax correctness

    int32(3.7) is valid syntax; the others are not MATLAB functions.
  3. Final Answer:

    int32(3.7) -> Option A
  4. Quick Check:

    Correct integer conversion = int32(3.7) [OK]
Hint: Use int32() to convert decimals to integers [OK]
Common Mistakes:
  • Using non-existent functions like int() or integer()
  • Forgetting parentheses in function calls
  • Expecting rounding instead of truncation
3. What is the output of the following MATLAB code?
val = int32(5.9);
disp(val);
medium
A. 5
B. Error
C. 5.9
D. 6

Solution

  1. Step 1: Understand int32 conversion behavior

    Converting a decimal number to int32 truncates the decimal part, it does not round.
  2. Step 2: Apply truncation to 5.9

    Truncating 5.9 results in 5, so val becomes 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    int32 truncates decimals = 5 [OK]
Hint: int32 cuts decimals, does not round [OK]
Common Mistakes:
  • Assuming int32 rounds up
  • Expecting output to be 5.9 (no conversion)
  • Thinking it causes an error
4. The following MATLAB code throws an error. What is the problem?
num = '123';
val = int32(num);
medium
A. Variable name 'num' is reserved
B. int32 cannot convert strings directly
C. Missing semicolon after assignment
D. int32 only works with integers, not strings

Solution

  1. Step 1: Analyze the input type

    The variable num is a string, not a numeric value.
  2. Step 2: Check int32 input requirements

    int32 expects numeric input, not strings. To convert a string to a number, use str2double first.
  3. Final Answer:

    int32 cannot convert strings directly -> Option B
  4. Quick Check:

    int32 needs numeric input [OK]
Hint: Convert string to number before int32 [OK]
Common Mistakes:
  • Trying to convert string directly with int32
  • Ignoring type mismatch errors
  • Assuming int32 rounds strings
5. You have a cell array of strings representing numbers: {'10.5', '20.1', '30.9'}. Which MATLAB code correctly converts this to an integer array by truncating decimals?
hard
A. intArray = str2double(int32(cellArray));
B. intArray = int32(cellArray);
C. intArray = int32(str2num(cellArray));
D. intArray = int32(cellfun(@str2double, cellArray));

Solution

  1. Step 1: Understand cell array conversion

    Each string in the cell array must be converted individually to a number.
  2. Step 2: Use cellfun with str2double and then int32

    cellfun(@str2double, cellArray) converts each string to double, then int32 truncates decimals for the whole array.
  3. Step 3: Check other options

    intArray = str2double(int32(cellArray)); tries to convert the cell array to int32 first, which fails. intArray = int32(cellArray); tries int32 on strings directly, which errors. intArray = int32(str2num(cellArray)); uses str2num incorrectly on cell array.
  4. Final Answer:

    intArray = int32(cellfun(@str2double, cellArray)); -> Option D
  5. Quick Check:

    Use cellfun + str2double + int32 [OK]
Hint: Use cellfun with str2double before int32 [OK]
Common Mistakes:
  • Trying to convert whole cell array at once
  • Using int32 directly on strings
  • Confusing str2num with str2double on cell arrays
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