MATLAB M Scripting Interview Questions And Tutorial

MATLAB M Scripting Interview Questions And Tutorial

Hello guys, welcome back to our blog. Here in this article, we will discuss MATLAB M scripting interview questions with the advanced-level tutorial.

Ask questions if you have any electrical,  electronics, or computer science doubts. You can also catch me on Instagram – CS Electrical & Electronics

Also, read:

MATLAB M Scripting Interview Questions

M-files are scripts and functions in MATLAB that contain a sequence of MATLAB commands. They help automate tasks, analyze data, and develop complex algorithms.

  • Script: A file containing a sequence of MATLAB commands executed in order.
  • Function: A file with inputs and outputs, designed to perform a specific task.

Creating an M-File

  • Open MATLAB.
  • Click New Script.
  • Write your commands and save the file with a .m extension.

MATLAB Syntax and Basic Commands

Variables and Data Types

x = 10;         % Assigning value to a variable
y = 20.5;       % Floating point number
z = 'MATLAB';   % String
A = [1, 2, 3; 4, 5, 6]; % Matrix

Keywords: clear, clc, disp, size, length

Basic Arithmetic

a = 5 + 3;   % Addition
b = 5 - 2;   % Subtraction
c = 4 * 3;   % Multiplication
d = 10 / 2;  % Division
e = 3^2;     % Power

Displaying Output

disp('Hello, MATLAB!');  % Display text
fprintf('The value of x is %d\n', x); % Formatted output

Conditional Statements

If-Else Condition

x = 10;
if x > 5
    disp('x is greater than 5');
elseif x == 5
    disp('x is equal to 5');
else
    disp('x is less than 5');
end

Keywords: if, elseif, else, end


Looping in MATLAB

For Loop

for i = 1:5
    disp(['Iteration: ', num2str(i)]);
end

While Loop

n = 1;
while n <= 5
    disp(['Value of n: ', num2str(n)]);
    n = n + 1;
end

Keywords: for, while, break, continue


Functions in MATLAB

Creating a Function

function result = addNumbers(a, b)
    result = a + b;
end

Calling a Function

sum = addNumbers(5, 3);
disp(['Sum: ', num2str(sum)]);

Keywords: function, return, end


Vectors and Matrices

Vector Operations

v = [1, 2, 3, 4, 5];  % Row vector
w = [1; 2; 3; 4; 5];  % Column vector
sum_v = sum(v);       % Sum of elements

Matrix Operations

A = [1 2; 3 4];   % 2x2 Matrix
B = [5 6; 7 8];

C = A + B;   % Matrix addition
D = A * B;   % Matrix multiplication
E = A';      % Transpose

Keywords: eye, zeros, ones, inv, det, size


Plotting in MATLAB

Basic Plot

x = 0:0.1:10;
y = sin(x);
plot(x, y);
xlabel('x-axis');
ylabel('y-axis');
title('Sine Wave');
grid on;

Multiple Plots

x = linspace(0, 10, 100);
y1 = sin(x);
y2 = cos(x);

plot(x, y1, 'r', x, y2, 'b');
legend('sin(x)', 'cos(x)');

Keywords: plot, xlabel, ylabel, title, grid, legend


File Handling in MATLAB

Reading a File

data = readmatrix('data.csv'); % Read CSV file
disp(data);

Writing to a File

x = [1, 2, 3; 4, 5, 6];
writematrix(x, 'output.csv');

Keywords: fopen, fclose, fprintf, readmatrix, writematrix


Error Handling

try
    x = 10 / 0;  % This will cause an error
catch ME
    disp('An error occurred:');
    disp(ME.message);
end

Keywords: try, catch


Advanced-Data Structures in MATLAB

Cell Arrays

A cell array can store different types of data in each element.

C = {'MATLAB', 42, [1 2 3]; 'Simulink', pi, eye(3)};
disp(C{1,1});  % Accessing the first element

Structures

A structure organizes data using named fields.

student.Name = 'John';
student.Age = 23;
student.Marks = [85, 90, 78];

disp(student.Age);  % Access age

Tables

Useful for handling tabular data.

T = table(["Alice"; "Bob"], [22; 24], [90; 85], 'VariableNames', {'Name', 'Age', 'Score'});
disp(T);

Keywords: cell, struct, table, fieldnames


Object-Oriented Programming (OOP) in MATLAB

MATLAB supports classes and objects similar to other programming languages.

Defining a Class

classdef Car
    properties
        Make
        Model
        Year
    end
    methods
        function obj = Car(make, model, year)
            obj.Make = make;
            obj.Model = model;
            obj.Year = year;
        end
        function displayCar(obj)
            fprintf('Car: %s %s, Year: %d\n', obj.Make, obj.Model, obj.Year);
        end
    end
end

Using the Class

myCar = Car('Toyota', 'Corolla', 2022);
myCar.displayCar();

Keywords: classdef, properties, methods, obj


Parallel Computing in MATLAB

Parallel computing speeds up execution by utilizing multiple cores.

Parallel For Loop (parfor)

parpool;  % Start parallel pool
parfor i = 1:8
    fprintf('Processing iteration %d\n', i);
end

GPU Computing

A = gpuArray(rand(1000));  % Move data to GPU
B = A * A;  % Perform matrix multiplication on GPU
disp(gather(B));  % Retrieve result from GPU

Keywords: parpool, parfor, gpuArray, gather


Optimization in MATLAB

MATLAB provides optimization tools for finding minima, solving equations, and machine learning.

Using fminunc (Unconstrained Optimization)

fun = @(x) x^2 + 2*x + 1;  % Function to minimize
x0 = 0;  % Initial guess
[x_min, fval] = fminunc(fun, x0);
disp(['Minimum value at x = ', num2str(x_min)]);

Using fmincon (Constrained Optimization)

fun = @(x) x(1)^2 + x(2)^2;
x0 = [1, 2];  % Initial guess
A = []; b = [];
Aeq = []; beq = [];
lb = [0, 0];  % Lower bounds
ub = [5, 5];  % Upper bounds
[x_opt, fval] = fmincon(fun, x0, A, b, Aeq, beq, lb, ub);
disp(x_opt);

Keywords: fminunc, fmincon, ga (Genetic Algorithm), optimoptions


MATLAB GUI Development

You can create Graphical User Interfaces (GUIs) using App Designer or uicontrol.

Basic GUI with a Button

fig = uifigure('Name', 'My MATLAB GUI');
btn = uibutton(fig, 'Text', 'Click Me', 'Position', [100 100 100 50], ...
    'ButtonPushedFcn', @(btn, event) disp('Button Pressed!'));

Keywords: uifigure, uibutton, uilabel, editfield


MATLAB Simulink Scripting

Simulink models can be controlled using MATLAB scripts.

Opening and Running a Model

open_system('myModel');  % Open Simulink model
set_param('myModel', 'SimulationCommand', 'start');  % Run simulation

Setting and Getting Block Parameters

set_param('myModel/Gain', 'Gain', '5');  % Set gain value to 5
value = get_param('myModel/Gain', 'Gain');  % Get gain value
disp(value);

Keywords: open_system, set_param, get_param


MATLAB and Python Integration

You can run Python scripts from MATLAB using the py module.

Calling Python Functions

result = py.math.sqrt(16);
disp(double(result));  % Convert to MATLAB format

Running a Python Script

pyexec('myscript.py');  % Execute Python script

Keywords: py, pyexec, convertCharsToStrings


MATLAB and Machine Learning

MATLAB provides built-in functions for data classification, regression, and clustering.

Using K-Means Clustering

data = rand(100, 2);  % Generate random data
[idx, C] = kmeans(data, 3);
scatter(data(:,1), data(:,2), [], idx, 'filled');

Using Neural Networks

net = feedforwardnet(10);  % Create a feedforward neural network
net = train(net, inputs, targets);  % Train the network
outputs = net(inputs);  % Test the network

Keywords: kmeans, train, feedforwardnet, fitcsvm


MATLAB and IoT

Reading Data from a Sensor (Simulated)

arduinoObj = arduino('COM3', 'Uno');
sensorValue = readVoltage(arduinoObj, 'A0');
disp(['Sensor Value: ', num2str(sensorValue)]);

Keywords: arduino, readVoltage, writeDigitalPin


MATLAB Deployment (Standalone Applications)

You can convert MATLAB scripts into standalone applications using MATLAB Compiler.

Generating an Executable

mcc -m myscript.m

Keywords: mcc, deploytool


M Scripting Interview Questions

01. What is M-Scripting in MATLAB?

Answer: M-Scripting refers to writing scripts and functions in MATLAB using .m files. It enables automation, data analysis, and algorithm development.

02. What are the different types of MATLAB scripts?

Answer: MATLAB has scripts (a sequence of commands without input/output arguments) and functions (modular code blocks with input/output arguments).

03. How do you define a function in MATLAB?

Answer:

function output = myFunction(input)
    output = input * 2;
end

04. What is the difference between a script and a function?

Answer:

    • Script: Runs commands in the workspace and doesn’t accept or return values.
    • Function: Accepts inputs, returns outputs, and operates in an isolated scope.

    05. How do you optimize performance in MATLAB?

    Answer: By using vectorization, preallocation, parallel computing (parfor), and built-in functions instead of loops.

    06. What are handle functions in MATLAB?

    Answer: Handle functions allow passing functions as arguments. Example:

    f = @(x) x^2 + 2*x + 1;
    result = f(3); % Evaluates function at x=3
    

    07. What is the difference between parfor and for loops?

    Answer: parfor runs iterations in parallel using multiple CPU cores, whereas for executes sequentially.

    08. How do you execute MATLAB scripts in the background?

    Answer: Use batch or matlab -batch in the command line.

    09. What are MATLAB’s main data structures?

    Answer: Arrays, Cell Arrays, Structures, Tables, and Maps.

    10. How do you create and manipulate cell arrays?

    Answer:

    C = {'MATLAB', 42, [1 2 3]};
    disp(C{1}); % Access first element
    

    11. What is the difference between cell and struct?

    Answer:

      • Cell Arrays store heterogeneous data indexed by position.
      • Structures store data in named fields.

      12. How do you work with tables in MATLAB?

      Answer:

      T = table(["Alice"; "Bob"], [22; 24], [90; 85], 'VariableNames', {'Name', 'Age', 'Score'});
      disp(T);
      

        13. How do you run a Simulink model from MATLAB script?

        Answer:

        open_system('myModel');
        set_param('myModel', 'SimulationCommand', 'start');
        

        14. How do you change block parameters in Simulink using MATLAB?

        Answer:

        set_param('myModel/Gain', 'Gain', '5');
        

        15. How do you integrate MATLAB with Python?

        Answer:

        result = py.math.sqrt(16);
        disp(double(result));
        

        16. How do you use GPU computing in MATLAB?

        Answer:

        A = gpuArray(rand(1000));
        B = A * A;
        disp(gather(B)); % Retrieve result from GPU
        

        17. What is the use of fminunc and fmincon in MATLAB?

        Answer: fminunc is for unconstrained optimization, while fmincon is for constrained optimization.

        18. How do you create a GUI in MATLAB?

        Answer:

        fig = uifigure('Name', 'My MATLAB GUI');
        btn = uibutton(fig, 'Text', 'Click Me', 'Position', [100 100 100 50]);
        

          19. What are MATLAB’s common machine learning functions?

          Answer: fitcsvm, trainNetwork, kmeans, fitctree, predict.

          20. How do you read and write data from an Excel file?

          Answer:

          data = readtable('data.xlsx');
          writetable(data, 'output.xlsx');
          

          21. What is the difference between global and persistent variables?

          Answer:

          • Global: Accessible across functions.
          • Persistent: Retains value within a function between calls.

          22. How do you deploy MATLAB code as a standalone application?

          Answer: Use MATLAB Compiler:

          mcc -m myscript.m
          

            23. How do you handle exceptions in MATLAB?

            Answer: Use try-catch blocks:

            try
                a = 1 / 0;
            catch ME
                disp('Error occurred');
            end
            

              24. How do you create an object-oriented class in MATLAB?

              Answer:

              classdef Car
                  properties
                      Make
                      Model
                  end
                  methods
                      function obj = Car(make, model)
                          obj.Make = make;
                          obj.Model = model;
                      end
                  end
              end
              

              25. How do you profile code performance in MATLAB?

              Answer: Use profile on; yourFunction(); profile viewer;

              26. What is vectorization in MATLAB, and why is it important?

              Answer: Vectorization is replacing explicit loops with matrix and vector operations, improving performance by leveraging MATLAB’s optimized internal functions.

              27. How do you use arrayfun in MATLAB?

              Answer:

              A = [1 2 3 4];
              B = arrayfun(@(x) x^2, A);
              disp(B); % Outputs [1 4 9 16]
              

              28. What is the difference between spalloc and sparse?

              Answer: spalloc preallocates memory for a sparse matrix without initializing values, whereas sparse creates a sparse matrix directly.

              29. How do you generate random numbers with a fixed seed?

              Answer:

              rng(42); % Set seed
              rand(1,5); % Generate random numbers
              

              30. How do you debug MATLAB scripts?

              Answer: Use dbstop, dbstep, dbcont, and dbquit to set breakpoints and step through the code.

              31. What is cellfun, and how is it used?

              Answer: cellfun applies a function to each cell in a cell array.

              C = {1, 2, 3, 4};
              D = cellfun(@(x) x^2, C);
              

              32. How do you save and load MATLAB workspace variables?

              Answer:

              save('myData.mat', 'A', 'B'); % Save variables
              load('myData.mat'); % Load variables
              

              33. How do you use anonymous functions in MATLAB?

              Answer:

              f = @(x, y) x + y;
              result = f(3, 5); % Returns 8
              

              34. What is the use of persistent variables?

              Answer: They retain their value between function calls.

              function count = counter()
                  persistent n;
                  if isempty(n)
                      n = 0;
                  end
                  n = n + 1;
                  count = n;
              end
              

              35. How do you profile MATLAB performance?

              Answer:

              profile on; 
              myFunction();
              profile viewer;
              

              36. How do you measure execution time in MATLAB?

              Answer:

              tic;
              % Your code here
              toc;
              

              37. How do you create a multi-threaded application in MATLAB?

              Answer: Use parfor or spmd for parallel execution.

              38. What is bsxfun, and how is it useful?

              Answer: bsxfun applies an element-wise function to two arrays of different sizes.

              39. How do you create a Simulink block using MATLAB scripting?

              Answer:

              add_block('built-in/Gain', 'myModel/Gain', 'Gain', '5');
              

              40. How do you convert a MATLAB function into a standalone executable?

              Answer: Use MATLAB Compiler:

              mcc -m myscript.m
              

              41. How do you use the optimset function in MATLAB?

              Answer: It sets optimization parameters for functions like fminunc and fmincon.

              options = optimset('Display', 'iter', 'TolFun', 1e-6);
              

              42. What is the purpose of deal in MATLAB?

              Answer: deal assigns outputs to multiple variables from a cell array.

              [A, B] = deal(10, 20);
              

              43. How do you work with sparse matrices in MATLAB?

              Answer:

              S = sparse([1 2 3], [4 5 6], [10 20 30], 5, 6);
              

              44. How do you interface MATLAB with an external C/C++ library?

              Answer: Use mex functions to create a MATLAB-executable .mex file.

              45. How do you read and write binary files in MATLAB?

              Answer:

              fid = fopen('data.bin', 'w');
              fwrite(fid, rand(100,1), 'double');
              fclose(fid);
              

              46. How do you use diff and gradient in MATLAB?

              Answer:

              x = 1:10;
              dx = diff(x); % Computes difference
              gx = gradient(x); % Computes numerical gradient
              

              47. What is the difference between ode45 and ode23?

              Answer: ode45 is used for medium-accuracy ODEs, while ode23 is for lower accuracy but faster execution.

              48. How do you visualize 3D data in MATLAB?

              Answer:

              [X, Y, Z] = peaks(50); surf(X, Y, Z);

              49. What is eval, and when should it be avoided?

              Answer: eval executes a string as MATLAB code but should be avoided due to security risks and performance issues.

              50. How do you implement a callback function in MATLAB GUI?

              Answer:

              btn = uibutton('Text', 'Click Me', 'ButtonPushedFcn', @(btn,event) disp('Button Clicked'));
              

                      This was about “MATLAB M Scripting Interview Questions And Tutorial“. Thank you for reading.

                      Also, read:

                      About The Author

                      Share Now