How to save matrix as a "pretty print" image?

27 views (last 30 days)
Josh
Josh on 4 May 2024
Edited: Rik on 4 May 2024
I'm creating animations based on abelian sandpile models, where the sandpile heights (integers>0) are used as index values to convert the matrices into color images (ind2rgb). I would like to create companion animations that show the original data in indexed, matrix form, hence the ask for saving a matrix in "pretty print" format as an image. I'll probably use matrices that are at max 20x20; otherwise, I imagine it'll be hard to keep the "font size" of the numbers large enough.
Depending on the model size, the animations are upwards of 10,000+ frames, so I don't want to do any screenshots or manual saving, even for a smaller/more basic example. But it would be a similar result as screenshotting the matrix as viewed in either the Command Window or Variables workspace. Something like this but without needing the commands and label:
If there's not a quick solution/hack, I may have to go the route of building out a separate function to handle this, which might be fun too.

Accepted Answer

Rik
Rik on 4 May 2024
Edited: Rik on 4 May 2024
Depending on your definition of pretty, you can use my text2im function. If you use sprintf, don't forget to transpose the array first (since matrices are column major, but text is generated row major).
  4 Comments
Rik
Rik on 4 May 2024
Happy to help. I was on mobile when I wrote the answer, so links are harder. But I'll edit my answer to include the link.

Sign in to comment.

More Answers (0)

Categories

Find more on Animation in Help Center and File Exchange

Products


Release

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!