web-dev-qa-db-fra.com

Sortie console MATLAB

Disons que j'avais une variable appelée "x" et x=5.

Je voudrais faire:

disp('x is equal to ' + x +'.');

et faire imprimer ce code:

x est égal à 5.

C'est comme ça que j'ai l'habitude de faire des choses en Java, donc ça doit être une manière similaire de faire ça dans MATLAB.

Merci

25
JJJ

Si vous souhaitez utiliser disp, vous pouvez construire la chaîne à afficher comme suit:

disp(['x is equal to ',num2str(x),'.'])

Personnellement, je préfère utiliser fprintf, qui utiliserait la syntaxe suivante (et me donne un certain contrôle sur le formatage de la valeur de x)

fprintf('x is equal to %6.2f.\n',x);

Vous pouvez bien sûr également fournir x sous forme de chaîne et obtenir la même sortie que disp (donner ou prendre quelques sauts de ligne).

fprintf('x is equal to %s\n',num2str(x))
68
Jonas

imprimer quelques variables scalaires dans matlab est un gâchis (voir la réponse ci-dessus). avoir une fonction comme celle-ci dans votre chemin de recherche aide à:

function echo(varargin)
str = '';
for k=1:length(varargin)
    str = [str ' ' num2str(varargin{k})];
end 
disp(str)
1
johannes_lalala

il suffit d'imbriquer un sprintf () à l'intérieur du disp ().

    disp(sprintf("X is equal to %d.",x));
0
Sir_Zorg