fprintf and arrays of varying length

63 vues (au cours des 30 derniers jours)
Keith Holmlund
Keith Holmlund le 19 Juin 2018
Commenté : Stephen23 le 19 Juin 2018
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 commentaire
Stephen23
Stephen23 le 19 Juin 2018
"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)

Connectez-vous pour commenter.

Réponse acceptée

Ameer Hamza
Ameer Hamza le 19 Juin 2018
Modifié(e) : Ameer Hamza le 19 Juin 2018
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 '

Plus de réponses (1)

Star Strider
Star Strider le 19 Juin 2018
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

Catégories

En savoir plus sur Variables dans Help Center et File Exchange

Produits


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by