Matrex blends matrix math with spreadsheet’s strengths

By

If you think “spreadsheet” automatically implies a two-dimensional plane populated with individual cells, you should know there are alternatives. Matrex is a vectorial spreadsheet, which means that formulas are not applied to single cells, but to rectangular blocks of data (vectors or matrices). Matrex’s interface has a structure similar to that of an IDE.

Matrex is suited to work on large amounts of data (typically from databases, files, or feeds) organized in rectangular blocks. My mathematical training ended with college calculus, so rather than relying on me to explain how Matrex works, I suggest you download the application and play with the samples that come with it. You can also look at the context-sensitive help and the documentation included in the setup file.

Among the things you’ll learn are that vectors, matrices, and formulas in Matrex each have a name, and the software includes editors and viewers for vectors and matrices, formulas, charts, and other objects. The calculation engine is loosely connected to the GUI, so the GUI does not freeze during heavy calculations. Matrex is strongly multithreaded; formulas are calculated by a pool of threads. And beginning with version 2.0, which was released last month, Matrex has its own server, which allows several Matrex applications to work together on the same project or workbook. Matrex applications and servers interact on a LAN, so that the image of the project seen by each Matrex application is always updated.

Why employ a vectorial spreadsheet? Matrex author Andrea Ferrandi says, “A standard spreadsheet containing a lot of data can easily become very complex, so that the person who wrote it has problems understanding how it works after a month. Sometimes writing such a spreadsheet requires copying formulas thousands of times, because the data to which they apply is actually a set of vectors or matrices. Also, I have often seen spreadsheets become unresponsive when they had to do complex calculations, or when someone tried to interact with them at the same time they received data from an external feed. With Matrex I wanted to solve these problems.”

Matrex is written in Java, using Eclipse. Ferrandi says he chose Java because it is platform-independent, easy to program, and has many libraries, including ones for mathematics and statistics. He uses the Standard Widget Toolkit (SWT) for the GUI, to make the application integrate well with whatever platform it runs on.

Matrex already has more than 100 functions, but Ferrandi is working on adding more. “I would like someone with experience with spreadsheets to help me learn which functions are the most important to have, find out how to implement them, and help implement the functions in Java. People can send me e-mail (my address can be found on the Matrex site) or send me a message via SourceForge.net.”

Comments are closed.