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.
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.