Question

Say I had a variable called "x" and x=5.

I would like to do:

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

and have that code print:

x is equal to 5.

This is how I am used to doing things in Java, so their must be a similar way to do this in MATLAB.

Thanks

Was it helpful?

Solution

If you want to use disp, you can construct the string to display like so:

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

I personally prefer to use fprintf, which would use the following syntax (and gives me some control over formatting of the value of x)

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

You can, of course, also supply x as string, and get the same output as disp (give or take a few line breaks).

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

OTHER TIPS

printing out a few scalar variables in matlab is a mess (see answer above). having a function like this in your search path helps:

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

just nest a sprintf() inside the disp().

    disp(sprintf("X is equal to %d.",x));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top