How to generate different filename with each iteration of code?

2 次查看(过去 30 天)
I am using the following synetex of matlab code
saveas(f, path + var + method + '.png');
where var and method are changing in each iteration. I mean there are two methods and two vars as follows
I wish to generate four png files with the combination of methods and vars using following code.
path = 'C:\chahar\';
methods = {'OLS', 'RF'};
dependent_vars = {'act_y_ha', 'act_per_ha'};
for m = 1:length(methods)
method = methods(m);
for jj = 1:numel(dependent_vars)
var = dependent_vars{jj};
% Save the figure
saveas(f, path + method + var + '.png');
end
end
Please suggest me how to fix the error as follows
Arrays have incompatible sizes for this operation.
saveas(f, path + var + method + '.png');
Related documentation

回答(1 个)

Voss
Voss 2024-3-7
编辑:Voss 2024-3-7
mypath = "C:\"; % string (with double quotes)
methods = {'OLS', 'RF'};
dependent_vars = {'act_y_ha', 'act_per_ha'};
% string concatenation
filenames = mypath + dependent_vars.' + methods + '.png'
filenames = 2×2 string array
"C:\act_y_haOLS.png" "C:\act_y_haRF.png" "C:\act_per_haOLS.png" "C:\act_per_haRF.png"
  3 个评论
Voss
Voss 2024-3-7
编辑:Voss 2024-3-7
mypath = "C:\chahar\"; % string (with double quotes)
methods = {'OLS', 'RF'};
dependent_vars = {'act_y_ha', 'act_per_ha'};
% string concatenation
filenames = mypath + dependent_vars.' + methods + '.png';
for m = 1:length(methods)
for jj = 1:numel(dependent_vars)
% Save the figure
saveas(f, filenames(jj,m));
end
end
Voss
Voss 2024-3-8
编辑:Voss 2024-3-8
Or, if you prefer:
mypath = 'C:\chahar\'; % character vector (with single quotes)
methods = {'OLS', 'RF'};
dependent_vars = {'act_y_ha', 'act_per_ha'};
for m = 1:length(methods)
method = methods{m};
for jj = 1:numel(dependent_vars)
var = dependent_vars{jj};
% Save the figure
saveas(f, [mypath,method,var,'.png']); % character vector concatenation
end
end

请先登录,再进行评论。

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by