IDL and Matlab should objectively be two very similar products in many aspects. Moreover, for beginners of IDL in China, they also habitually compare IDL and Matlab. Since they are not very familiar with these two products and have made various misunderstandings, I will give you a relatively objective comparison here. Scientific data provides a fully functional environment for analysis and display. However, their differences make IDL more suitable for application developers and researchers who use images and massive data to discover useful information, make medical diagnoses, and obtain scientific decisions.
First, let's take a look at their similarities:
1. They are all tools used to support visual analysis of multiple data formats. They feature cross-platform, matrix-based, and advanced languages.
2. They can also provide highly integrated environments.
3. For guis, they can also provide corresponding tools and design environments.
4. They can all provide an object-oriented graphics system that supports OpenGL hardware graphics acceleration.
5. They all have interfaces with other languages. And so on...
However, there are also many differences between them, as shown below:
1. Their product positioning is different. MATLAB is a product used in the lab. It focuses on analysis and accuracy calculation. His original design was based on a small two-dimensional matrix. The Design of IDL is more from the perspective of scientific exploration. Because visualization is the key to data interpretation, IDL has done a lot of work in image processing, advanced 3D graphics, and so on. In addition, it provides a complete environment for massive multi-dimensional data and corresponding application development.
2. The Toolbox format is different. This feature is the most obvious. IDL integrates all provided tools into the environment and appears in the form of functions or other tools, while MATLAB classifies various toolboxes for users to purchase on their own, it has certain flexibility, but it does not mean that each toolbox has powerful functions. For example, the Image Processing Toolbox is inferior to IDL.
3. After idl5.5, multi-thread (CPU) computing is automatically supported, which greatly improves the computing speed and does not requireCodeIt will reduce the programming difficulty. This has become the flash selling point of IDL as the data volume continues to increase. MATLAB cannot do this yet.
4. Different data types. As mentioned above, Matlab focuses on computational accuracy, but it also becomes a bottleneck for large-scale computing. Although IDL and Matlab support the same data type, IDL has a more flexible processing method.
5. Different graphic display methods. MATLAB only supports graphic display of the Surface object, while IDL provides the choice of direct graphics, because sometimes direct graphics is more convenient. In addition, Matlab cannot support the display of real and physical data, which will become an obstacle for applications including medical imaging, geological data, atmospheric and environmental science.
6. Application Development and publishing. This is also the issue of product positioning mentioned above.
7. network solution. Although the cgi provided by Mathworks is a network-based product, it is similar to ION script and cannot provide solutions that ion Java can provide to users. And so on...
In short, I will summarize the weaknesses of MATLAB and IDL after comparison:
1. mandatory dual-precision computing sometimes results in eight times the actual data precision consumed by MATLAB during computing. This results in a waste of resources and limits the ability to process data volumes.
2. the wide array of toolboxes has become a double-edged sword of MATLAB in the market.
3. There are still some problems in MATLAB's computing speed and memory management.
4. MATLAB does not support multi-thread (CPU) computing.
5. When Matlab is used in practical engineering, it is a problem with the data volume. So far, IDL has no problem in running 2G radar data.
6. In terms of image processing, IDL is still a tool better than Matlab.
7. for external language interfaces, IDL has more extensive and convenient tools, such as C, C ++, Fortran, and ActiveX controls.