Reading vector elements into a string

I have a vector of numbers that I would like to use to create a filename. For example with a vector [1] I would like the filename temp0001.file. This is simply done by
filename = sprintf('%04d', vector);
This doesn't carry over once I append more elemnts to the matrix, for example [1,2] should result in temp0012.file but instead becomes temp0102.file. Is there another way to parse the vectors?

2 commentaires

Walter Roberson
Walter Roberson le 23 Juil 2020
If [1,2] should produce 0012, then what should [1,12] produce ?
Morten Nissov
Morten Nissov le 23 Juil 2020
Sorry I have assumed the contents of the vector are integers >-1 and <10

Connectez-vous pour commenter.

Réponses (2)

Walter Roberson
Walter Roberson le 23 Juil 2020
temp = sprintf('%d', [0 0 0 0, vector]);
temp = temp(end-3:end);
filename = sprintf('temp%s.file', temp);

1 commentaire

filename = sprintf('temp%04d.file', sum(vector .* 10.^(length(vector)-1:-1:0)));

Connectez-vous pour commenter.

KSSV
KSSV le 23 Juil 2020
n = [1 2] ; % your vector
v = sprintf('%.0f' , n) ; % convert n to char
filename = sprintf('%04d',str2num(v));

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Produits

Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by