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 件のコメント

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

サインインしてコメントする。

回答 (2 件)

Walter Roberson
Walter Roberson 2020 年 7 月 23 日

0 投票

temp = sprintf('%d', [0 0 0 0, vector]);
temp = temp(end-3:end);
filename = sprintf('temp%s.file', temp);

1 件のコメント

Walter Roberson
Walter Roberson 2020 年 7 月 23 日
filename = sprintf('temp%04d.file', sum(vector .* 10.^(length(vector)-1:-1:0)));

サインインしてコメントする。

KSSV
KSSV 2020 年 7 月 23 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

製品

リリース

R2019b

タグ

質問済み:

2020 年 7 月 23 日

コメント済み:

2020 年 7 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by