Bird
Raised Fist0
MATLABdata~10 mins

Type conversion functions in MATLAB - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Type conversion functions
Start with variable
↓
Choose conversion function
↓
Apply function: e.g., double(), int32(), char()
↓
Variable changes type
↓
Use converted variable in code
↓
End
Start with a variable, pick a conversion function, apply it to change the variable's type, then use the new type in your code.
Execution Sample
MATLAB
a = '123';
b = double(a);
c = int32(b);
Convert a string '123' to its ASCII numeric codes, then convert those numbers to 32-bit integers.
Execution Table
StepCode LineVariableValueTypeAction
1a = '123';a'123'char arrayAssign string to a
2b = double(a);b[49 50 51]double arrayConvert chars to ASCII codes
3c = int32(b);c[49 50 51]int32 arrayConvert double to int32
4----End of execution
💡 All lines executed, variables converted successfully
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
aundefined'123''123''123''123' (char array)
bundefinedundefined[49 50 51][49 50 51][49 50 51] (double array)
cundefinedundefinedundefined[49 50 51][49 50 51] (int32 array)
Key Moments - 2 Insights
Why does double('123') give numbers like 49, 50, 51 instead of 123?
Because double() converts each character to its ASCII code, so '1' becomes 49, '2' becomes 50, and '3' becomes 51, as shown in step 2 of the execution_table.
Does int32() change the numeric values when converting from double?
No, int32() changes the data type but keeps the numeric values the same, as seen in step 3 where values remain [49 50 51] but type changes to int32.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the type of variable b after step 2?
Achar array
Bint32 array
Cdouble array
Dstring
💡 Hint
Check the 'Type' column for variable b at step 2 in the execution_table.
At which step does variable c get its value assigned?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Code Line' and 'Variable' columns in the execution_table to see when c is assigned.
If we replace double(a) with int8(a), what would be the type of b after step 2?
Aint8 array
Bdouble array
Cchar array
Dint32 array
💡 Hint
int8() converts to 8-bit integers, so the type changes accordingly.
Concept Snapshot
Type conversion functions in MATLAB:
- Use functions like double(), int32(), char() to change variable types.
- double('abc') converts chars to ASCII codes.
- int32(doubleVar) changes numeric type without changing values.
- Useful to prepare data for different operations.
Full Transcript
This example shows how MATLAB converts types using functions. First, a string '123' is stored in variable a as a char array. Then, double(a) converts each character to its ASCII numeric code, resulting in b as a double array with values [49 50 51]. Next, int32(b) converts these double numbers to 32-bit integers, stored in c. The values remain the same but the type changes. This process helps when you need to work with numbers instead of characters or change numeric precision.

Practice

(1/5)
1. Which MATLAB function converts a string representing a number into a numeric double type?
easy
A. str2double
B. double
C. int32
D. char

Solution

  1. Step 1: Understand the input and output types

    The input is a string representing a number, and the output should be a numeric double type.
  2. Step 2: Identify the correct conversion function

    str2double converts strings to double numbers, while double converts numeric types to double, int32 converts to 32-bit integers, and char converts numbers to characters.
  3. Final Answer:

    str2double -> Option A
  4. Quick Check:

    String to double = str2double [OK]
Hint: Use str2double for string to number conversion [OK]
Common Mistakes:
  • Using double on a string causes error
  • Using int32 converts to integer, not double
  • Using char converts to characters, not numbers
2. Which of the following is the correct syntax to convert a numeric variable x to a 32-bit integer in MATLAB?
easy
A. convertToInt32(x)
B. int(x, 32)
C. int32(x)
D. toInt32(x)

Solution

  1. Step 1: Recall MATLAB's type conversion syntax

    MATLAB uses functions named after the target type, like int32, called with parentheses around the variable.
  2. Step 2: Check each option's syntax

    Only int32(x) is valid MATLAB syntax. The others are not MATLAB functions or use incorrect syntax.
  3. Final Answer:

    int32(x) -> Option C
  4. Quick Check:

    Correct syntax for int32 conversion = int32(x) [OK]
Hint: Use function name with parentheses for conversion [OK]
Common Mistakes:
  • Using non-existent functions like convertToInt32
  • Incorrect function call syntax
  • Confusing with other language syntax
3. What is the output of the following MATLAB code?
x = '123.45';
y = str2double(x);
z = int32(y);
disp(z);
medium
A. 123.45
B. '123.45'
C. Error
D. 123

Solution

  1. Step 1: Convert string to double

    str2double('123.45') converts the string to numeric double 123.45.
  2. Step 2: Convert double to int32

    int32(123.45) converts the double to integer by truncating the decimal part, resulting in 123.
  3. Final Answer:

    123 -> Option D
  4. Quick Check:

    str2double + int32 truncates decimals = 123 [OK]
Hint: int32 truncates decimals after str2double [OK]
Common Mistakes:
  • Expecting int32 to round instead of truncate
  • Thinking str2double returns string
  • Confusing output with original string
4. Identify the error in this MATLAB code snippet:
x = 65;
y = str2double(x);
disp(y);
medium
A. str2double cannot convert numeric input
B. x should be a string for str2double
C. Missing semicolon after disp(y)
D. disp cannot display numeric values

Solution

  1. Step 1: Check input type for str2double

    str2double expects a string input, but x is numeric (65).
  2. Step 2: Identify the cause of error

    Passing numeric x to str2double causes unexpected behavior or error because it is not a string.
  3. Final Answer:

    x should be a string for str2double -> Option B
  4. Quick Check:

    str2double needs string input [OK]
Hint: str2double requires string input, not numeric [OK]
Common Mistakes:
  • Passing numeric directly to str2double
  • Thinking disp needs semicolon
  • Believing disp can't show numbers
5. You have a cell array of strings representing numbers: data = {'10', '20.5', '30', '40.7'}. Which MATLAB code correctly converts all elements to a numeric array of doubles?
hard
A. numArray = cellfun(@str2double, data);
B. numArray = double(data);
C. numArray = int32(data);
D. numArray = str2double(data);

Solution

  1. Step 1: Understand data type and conversion needed

    data is a cell array of strings; we want a numeric double array.
  2. Step 2: Use cellfun with str2double

    cellfun(@str2double, data) applies str2double to each cell element, converting strings to doubles.
  3. Step 3: Check other options

    double(data) and int32(data) do not work on cell arrays directly; str2double(data) expects a string, not a cell array.
  4. Final Answer:

    numArray = cellfun(@str2double, data); -> Option A
  5. Quick Check:

    Use cellfun with str2double for cell string arrays [OK]
Hint: Use cellfun(@str2double, cellArray) for cell string to numbers [OK]
Common Mistakes:
  • Trying double or int32 on cell arrays directly
  • Using str2double on cell array without cellfun
  • Not converting strings inside cells individually
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