MATLAB and Simulink for Algorithm Development

Design algorithms for desktop and embedded applications

MATLAB® lets you develop algorithms much faster than in traditional languages such as C, C++, or Fortran. You can validate concepts, explore design alternatives, and distribute your algorithm in the form that best suits your application. MATLAB provides the tools you need to transform your ideas into algorithms, including:

  • Thousands of core mathematical, engineering, and scientific functions
  • Application-specific algorithms in domains such as signal and image processing, control design, computational finance, and computational biology
  • Development tools for editing, debugging, and optimizing algorithms

These capabilities, combined with MATLAB programs created by the worldwide user community, let you explore approaches that otherwise would be too time-consuming to consider.

Your completed algorithms can be converted into self-contained applications and software components for desktop and Web deployment. Alternatively, you can incorporate the algorithm in a system simulation or an embedded system.

“MATLAB is an ideal environment for developing and understanding our algorithms. Simulink integrates well with MATLAB and lets us produce a design that looks very similar to what we end up with ultimately in hardware."

Francis Swarts, Broadcom

Developing Algorithms in the MATLAB Environment

MATLAB offers integrated capabilities for deep and broad exploration of algorithm design options, as well as for efficient deployment to desktop and embedded software environments.

Explore and Refine Your Ideas

The MATLAB environment lets you explore multiple ideas and approaches. The high-level language automatically manages low-level programming details such as memory management and variable typing, letting you focus on what you want the algorithm to do.

MATLAB encourages an iterative process because it enables you to:

  • Edit, debug, and test different designs without compiling or linking
  • Customize the rich set of proven algorithms and functions already implemented in the MATLAB language
  • Browse and recall previous commands to repeat and modify your approach

Once your algorithm is functionally correct, you can optimize it for performance and maintainability. Built-in tools identify potential problems and recommend modifications. To ensure that the algorithm works robustly on fixed-point processors, you can apply fixed-point data types and arithmetic.

Test and Verify Your Algorithm

The true test of an algorithm is how it performs under real-world conditions. You can test your algorithms on financial, mapping, image, or other data by connecting directly to databases, hardware, and instruments.

Deploy, Share, and Distribute Your Algorithm

Once your algorithm is fully optimized and tested, MATLAB provides multiple ways to share it with others, including a range of options for documenting and publishing your code and results. Algorithms can be distributed directly to other MATLAB users. You can also deploy your algorithm as a stand-alone application, as a software module that can be integrated with other languages and applications, or as standalone C code.

Designing Embedded Algorithms

With MathWorks products for embedded algorithm development, you move from concept to embeddable code in a single environment. You can:

  • Refine your MATLAB algorithm based on design requirements
  • Simulate your algorithm in the context of a larger system model
  • Generate bit-true test sequences for verifying software and hardware
  • Generate C code and HDL code for implementing on hardware

Develop and Refine Your Algorithm

With MathWorks products you can quickly develop your algorithm and then refine it as required for implementation on your target processor. For example, you can:

  • Convert the design to a fixed-point or integer-based representation to accommodate processors with limited word lengths.
  • Incorporate data management schemes, such as buffering, streaming, and pipelining, to represent real-time data processing requirements
  • Explore design alternatives to meet the smaller memory requirement and computational footprint of your hardware

Generate Code for Prototyping or Implementation

With MATLAB Coder, the algorithms and data structures that you implemented in MATLAB can be automatically translated to C for implementation on an embedded processor. You can also write C-code test harnesses for constructing and downloading data structures on the processor.

Incorporate Your Algorithm into a Larger System

If your algorithm is a component of a larger system, it can be incorporated into a system-level model. You can then simulate the model to verify the algorithm and ensure that your design meets overall system requirements.