Effacer les filtres
Effacer les filtres

Using sprintf to get variables from a file

1 vue (au cours des 30 derniers jours)
Isma_gp
Isma_gp le 11 Oct 2016
Commenté : Guillaume le 12 Oct 2016
Hi,
I would like to extract some data from a file. The data comes with different variable names. For example, in order to get the names of the fields of interest called "FORCE_SH10", "FORCE_SH20", I use the following:
names_f = arrayfun(@(n)sprintf('FORCE_SH%02d',n),10:10:40,'Uni',false);
I would like a similar way to retrieve the following names: "FORCE_x_y" where x can be 1:4 and y can be 1:4 (with all possible combinations i.e. "FORCE_1_2", "FORCE_3_4" etc.)
Thanks

Réponse acceptée

Guillaume
Guillaume le 11 Oct 2016
[x, y] = ndgrid(1:4, 1:4); %first 1:4 is x range, 2nd 1:4 is y range
names_f = arrayfun(@(xx, yy) sprintf('FORCE_%d_%d', xx, yy), x(:), y(:), 'UniformOutput', false)
Or if you're using the new string class introduced in R2016b:
[x, y] = ndgrid(1:4, 1:4); %first 1:4 is x range, 2nd 1:4 is y range
names_f = compose('FORCE_%d_%d', x(:), y(:))
  2 commentaires
Isma_gp
Isma_gp le 12 Oct 2016
I get an error: Undefined function 'compose' for input arguments of type 'char'.
Guillaume
Guillaume le 12 Oct 2016
Modifié(e) : Guillaume le 12 Oct 2016
As I wrote:
"Or if you're using the new string class introduced in R2016b"
You're obviously not using R2016b, so use the first solution.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Author Block Masks dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by