fprintf and arrays of varying length

64 ビュー (過去 30 日間)
Keith Holmlund
Keith Holmlund 2018 年 6 月 19 日
コメント済み: Stephen23 2018 年 6 月 19 日
I have a function where one of the inputs is an array, i.e A = [1 1 1 1] or A = [1 1 1 1 1 1 1]. I would like to use fprintf and/or sprintf to write the array to a text file. I know I can specify formatSpec to a specific length, like '%d %d %d %d' but if the array can vary in length, is there a way to make sure the formatSpec has the same number of %d as the amount of numbers in the array
  1 件のコメント
Stephen23
Stephen23 2018 年 6 月 19 日
"is there a way to make sure the formatSpec has the same number of %d as the amount of numbers in the array"
fprintf(' %d',A)

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

採用された回答

Ameer Hamza
Ameer Hamza 2018 年 6 月 19 日
編集済み: Ameer Hamza 2018 年 6 月 19 日
A = [1 1 1 1 1];
repmat('%d ', 1, length(A))
ans =
'%d %d %d %d %d '
sprintf(repmat('%d ', 1, length(A)), A)
ans =
'1 1 1 1 1 '

その他の回答 (1 件)

Star Strider
Star Strider 2018 年 6 月 19 日
The fprintf (and sprintf) functions will do that by default:
A = [1 1 1 1 1];
fprintf('%2d', A)
fprintf('\n')
1 1 1 1 1

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by