How can I put a string variable into a Figure Title?

231 Ansichten (letzte 30 Tage)
Keith Grey
Keith Grey am 14 Mai 2020
Kommentiert: Star Strider am 14 Mai 2020
FILE_NAME = '1.A.A';
figure('Name', 'Figure 1')
plot(X, Y, 'LineWidth', 1)
title('FILE %s: X vs Y (dB Mag)', FILE_NAME)
savefig('FILE %s: X vs Y.fig', FILE_NAME)
I have a large number of figures I'm plotting, so
I want to designate the variable FILE_NAME, and save the figures in my Current Folder.
  • Currently, I'm getting an error, "Incorrect number of input arguments"
  2 Kommentare
Joe_Z
Joe_Z am 14 Mai 2020
I think you forgot the sprintf() within the title() function. title() only takes a single text input argument (or Name:Value Pairs) which is why it is throwing that error. Try:
figure('Name', 'Figure 1')
plot(X, Y, 'LineWidth', 1)
title(sprintf('FILE %s: X vs Y (dB Mag)', FILE_NAME))
savefig(sprintf('FILE %s: X vs Y.fig', FILE_NAME))
Image Analyst
Image Analyst am 14 Mai 2020
I'd recommend saving them as PNG files with exportgraphics() or saveas() or export_fig().

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider
Star Strider am 14 Mai 2020
You’re almost there!
Add a sprintf call and it does what you want:
title(sprintf('FILE %s: X vs Y (dB Mag)', FILE_NAME))
and:
savefig(sprintf('FILE %s: X vs Y.fig', FILE_NAME))
I tested the title call. Since I don’t want to write the file to my computer, I didn’t test the savefig call. It should work. (It would likely help to include the figure handle as the first argument in the savefig call, just to be certain it’s doing what you want it to, although that’s snot required.)
.
  4 Kommentare
Keith Grey
Keith Grey am 14 Mai 2020
That did it! Thank you very much for your help!
Star Strider
Star Strider am 14 Mai 2020
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 14 Mai 2020
Try
FILE_NAME = '1.A.A';
hFig = figure; % Bring up a new figure, or hFig = gcf to get an existing figure handle.
hFig.Name = sprintf('%s', FILE_NAME); % or hFig.Name = 'Figure 1' or whatever
hFig.NumberTitle = 'off'; % No "Figure 1" in the title bar.
hFig.WindowState = 'maximized' % Maximize the figure window.
% Plot something...
plot(X, Y, 'LineWidth', 1)
caption = sprintf('FILE %s: X vs Y (dB Mag)', FILE_NAME);
title(caption, 'FontSize', 20);
% Prepare PNG filename:
baseFileName = sprintf('%s.png', FILE_NAME); % Tack on png extension so oeprating system will recognize it.
% folder can be pwd or wherever you want it to go.
folder = pwd; % current folder, or use 'D:\my images\' or wherever...
fullFileName = fullfile(folder, baseFileName);
% Save image to disk:
saveas(hFig, fullFileName); % Save to disk as a PNG format image.

Kategorien

Mehr zu Printing and Saving finden Sie in Help Center und File Exchange

Produkte


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by