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 Labels and Annotations 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