How to align properly using sprintf?

I am trying to display information in subplot using sprintf to create messages. Sample code that I am using is below - even though left-justify and right-justify has constant values, the output doesn't look aligned.
messages = {};
messages{end+1} = sprintf(['\t%-20s',' : ','%10d'] , 'Feature 1', 152);
messages{end+1} = sprintf(['\t%-20s',' : ','%10d'], 'other feature', 6509);
messages{end+1} = sprintf(['\t%-20s',' : ','%10d'], 'N',3);
text(-0.15, 0.7, messages, 'FontWeight', 'bold');
axis off
Here is the screenshot of the output from running the above code:
I am hoping to have output that is better aligned, like below:
Feature 1 : 152
other feature : 6509
N : 3
Any help would be greatly appreciated!

 Akzeptierte Antwort

Rik
Rik am 12 Mär. 2018
Verschoben: Voss am 14 Dez. 2023

0 Stimmen

Using a fixed-width font will help if you're trying to align text with numbers of characters.

3 Kommentare

Louis
Louis am 12 Mär. 2018
Verschoben: Voss am 14 Dez. 2023
Tried
text(-0.15, 0.7, messages, 'FontName', 'FixedWidth', 'FontWeight', 'bold');
but I get the same outcome.
*Fixed typo according to comment below
the cyclist
the cyclist am 12 Mär. 2018
Verschoben: Voss am 14 Dez. 2023
It will work if you spell FixedWidth correctly. :-)
Louis
Louis am 12 Mär. 2018
Verschoben: Voss am 14 Dez. 2023
Thanks for pointing that out. It works!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Scripts finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 12 Mär. 2018

Verschoben:

am 14 Dez. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by