I’m trying to write a simple function that takes two inputs, x and y, and passes these to three other simple functions that add, multiply, and divide them. The main function should then display the results as a string containing x, y, and the totals.
I think there’s something I’m not understanding about output arguments. Anyway, here’s my (pitiful) code:
function a=addxy(x,y)
a=x+y;
function b=mxy(x,y)
b=x*y;
function c=dxy(x,y)
c=x/y;
The main function is:
function [d e f]=answer(x,y)
d=addxy(x,y);
e=mxy(x,y);
f=dxy(x,y);
z=[d e f]
How do I get the values for x, y, d, e, and f into a string? I tried different matrices and stuff like:
['the sum of' x 'and' y 'is' d]
but none of the variables are showing up.
Two additional issues:
- Why is the function returning “ans 3” even though I didn’t ask for the length of
z? - If anyone could recommend a good book for beginners to MATLAB scripting I’d really appreciate it.
As Peter and Amro illustrate, you have to convert numeric values to formatted strings first in order to display them or concatenate them with other character strings. You can do this using the functions FPRINTF, SPRINTF, NUM2STR, and INT2STR.
With respect to getting
ans = 3as an output, it is probably because you are not assigning the output fromanswerto a variable. If you want to get all of the output values, you will have to callanswerin the following way:This will place the value
dinout1, the valueeinout2, and the valuefinout3. When you do the following:MATLAB will automatically assign the first output
d(which has the value 3 in this case) to the default workspace variableans.With respect to suggesting a good resource for learning MATLAB, you shouldn’t underestimate the value of the MATLAB documentation. I’ve learned most of what I know on my own using it. You can access it online, or within your copy of MATLAB using the functions DOC, HELP, or HELPWIN.