- backslash (\) is an escape character for sprintf, i.e., an indicator of a special character such as \n (newline), \r (carriage return), \t (horizontal tab), etc., so you shouldn't use \ in your sprintf call unless you mean to indicate special characters such as the ones mentioned. You could replace all \ with \\ to escape the backslash and print a literal backslash, but an easier way would be to use %s to represent the first part of your file's full-path name (this is shown below).
- %d is not an appropriate format for S(k).name. Use %s to print a character array such as a file name.
How can I save figures when created in a loop?
조회 수: 25 (최근 30일)
Hello, I am running my code in a loop for 66 meteorological stations/data sets. In that code, every dataset is evaluated and different calculations are made. Different figures are being created (n = 20). I managed to run the code in a loop, but I would like to save the figures according to their stationname in a different folder. So, 66 folders with each one including 20 figures from the code. I include the way I import and run the loop as well as one example of a figure. The content of the figure is irrelevant.
Let's say the calculations are made in that loop below, how can I save each file in a folder directory, that is based on its stationname?
I am using Matlab 2018b.
% Import Data from .csv
Stationnames = readtable('C:\my\directory\Stationnames.txt','delimiter',',');
Station = table2array(Stationnames);
ST = 1:length(Station);
S = dir(fullfile('C:\my\directory\data','*.csv'));
for k = 1:numel(S)
fnm = fullfile('C:\my\directory\data',S(k).name);
wind = dataset('file',fnm,'delimiter',',','format',['%s' repmat(' %f',1,4)]);
h1 = figure;
MB = bar(Norm.Comnmiss, 'grouped');
title('Count of low Quality Data Points')
set(gca, 'XTick', 1:4)
Voss 2023년 1월 31일
This won't work for a couple of reasons:
Therefore, do something like this instead:
filename_prefix = 'C:\my\directory\...\Count_missing_values';
Note that that makes the file names all start with "Count_missing_values", which looks like what you're going for. If instead "Count_missing_values" should be the directory that contains the files, put another backslash on the end:
filename_prefix = 'C:\my\directory\...\Count_missing_values\'; % <- ends with \