How to use multiple variables in a name structure

3 vues (au cours des 30 derniers jours)
Nik Rocky
Nik Rocky le 23 Juin 2020
Commenté : Nik Rocky le 23 Juin 2020
Hello,
a simple question please answer or show me a help file - I can't find it:
I get a filename
fig_name = [name, '_PLL.png'];
and get
'001_m1_60_const_20200611_200515_PLL.png'
now, I want have more variable in my fig_name, to get:
'001_m1_60_const_20200611_200515_SNR_1_PLL.png'
'001_m1_60_const_20200611_200515_SNR_2_PLL.png'
'001_m1_60_const_20200611_200515_SNR_3_PLL.png'
...
'001_m1_60_const_20200611_200515_SNR_N_PLL.png'
I tried allready with:
fig_name = [name,'_SNR_',SNR,'_PLL.png']
but I get just:
fig_name = '001_m1_60_const_20200611_200515_SNR__PLL.png'
What is wrong? What is a rule to create a names with usin of variables?
Thank you!

Réponses (2)

madhan ravi
madhan ravi le 23 Juin 2020
compose('001_m1_60_const_20200611_200515_SNR_%d_PLL.png', (1:3).')
  5 commentaires
madhan ravi
madhan ravi le 23 Juin 2020
Thank you sir Image Analyst.
Nik Rocky
Nik Rocky le 23 Juin 2020
Yes, thank you!

Connectez-vous pour commenter.


Stephen23
Stephen23 le 23 Juin 2020
Modifié(e) : Stephen23 le 23 Juin 2020
The most efficient approach is to use sprintf (and is what experienced MATLAB users would do):
for k = ...
fig_name = sprintf('%s_SNR_%u_PLL.png',name,k);
...
end
You should avoid using i as a variable name, as this shadows the inbuilt imaginary unit i.
  7 commentaires
Stephen23
Stephen23 le 23 Juin 2020
What you showed is a table for C's sprintf, apparently copied from here:
It supports a different set options than MATLAB's sprintf, although there is some overlap.
To know what options MATLAB's sprintf supports, refer to the MATLAB documentation:
Nik Rocky
Nik Rocky le 23 Juin 2020
Oh, thank you! Its good to know. than the table is not compatible. Should I better delete it?

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by