Using sprintf to get variables from a file

1 Ansicht (letzte 30 Tage)
Isma_gp
Isma_gp am 11 Okt. 2016
Kommentiert: Guillaume am 12 Okt. 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

Akzeptierte Antwort

Guillaume
Guillaume am 11 Okt. 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 Kommentare
Isma_gp
Isma_gp am 12 Okt. 2016
I get an error: Undefined function 'compose' for input arguments of type 'char'.
Guillaume
Guillaume am 12 Okt. 2016
Bearbeitet: Guillaume am 12 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Author Block Masks finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by