2009-06-18 8 views
17

Existe-t-il un moyen de générer/afficher des informations à partir d'un programme MATLAB sans saut de ligne de fin?Affichage d'informations à partir de MATLAB sans saut de ligne

Mon programme MATLAB sort un nombre un peu de temps en temps. Entre la sortie du numéro, le programme fait beaucoup d'autres choses. C'est une construction principalement pour indiquer une sorte de progrès et il serait bien de ne pas avoir un saut de ligne à chaque fois, juste pour le rendre plus lisible pour l'utilisateur. C'est à peu près ce que je cherche:

Current random seed: 
4 7 1 1 

La prochaine sortie du programme serait sur la même ligne si elle fait toujours la même chose qu'avant. J'ai lu les doc sur disp, sprintf et format mais je n'ai pas trouvé ce que je cherchais. Cela ne veut pas dire que ce n'est pas là. ;)

Répondre

22

La fonction fprintf n'ajoute pas de saut de ligne à moins que vous ne le disiez explicitement. Omettez l'argument fid pour l'imprimer dans la fenêtre de commande.

fprintf('Doing stuff... '); 
for i = 1:5 
    fprintf('%d ', i); 
    % do some work on that pass... 
end 
fprintf(' done.\n'); % That \n explicitly adds the linefeed 

En utilisant sprintf ne fonctionne pas tout à fait: il crée une chaîne sans saut de ligne, mais si vous utilisez AFF() ou omettre le point-virgule, propre logique d'affichage de AFF ajoutera un saut de ligne.

+2

Remarque: en fonction de votre plate-forme, vous devrez peut-être appeler "drawnow"; après le fprintf. –

+0

Fonctionne comme un charme. – AnnaR

+0

Que savez-vous, je fais disp (sprintf (...)) depuis des années et je n'ai jamais su que vous pouvez simplement utiliser fprintf. –

Questions connexes