我正在尝试编写一个简单的函数,该函数接受两个输入x和y ,并将它们传递给其他三个简单函数,这些函数将它们相加,相乘和相除。然后,main函数应将结果显示为包含x , y和总数的字符串。
我认为我对输出参数有些不了解。无论如何,这是我的(可怜)代码:
function a=addxy(x,y) a=x+y; function b=mxy(x,y) b=x*y; function c=dxy(x,y) c=x/y; 主要功能是:
function [def]=answer(x,y) d=addxy(x,y); e=mxy(x,y); f=dxy(x,y); z=[def] 如何将x , y , d , e和f转换为字符串?我尝试了不同的矩阵和类似的东西:
['the sum of' x 'and' y 'is' d] 但没有显示任何变量。
另外两个问题:
- 为什么即使我没有要求z的长度,函数仍返回“ ans 3”?
- 如果有人可以为MATLAB脚本初学者推荐一本好书,我将不胜感激。
回答:
正如
Peter和
Amro所说明的,您必须首先将数字值转换为格式化的字符串,以便显示它们或将它们与其他字符串连接在一起。您可以使用函数
FPRINTF ,
SPRINTF ,
NUM2STR和
INT2STR进行此操作 。
关于将ans = 3作为输出,可能是因为您没有将answer的输出分配给变量。如果要获取所有输出值,则必须通过以下方式调用answer :
[out1,out2,out3] = answer(1,2); 这会将值d放入out1 ,将值e放入out2 ,将值f放入out3 。当您执行以下操作时:
answer(1,2) MATLAB将自动将第一个输出d (在这种情况下,其值为3)分配给默认工作空间变量
ans 。
关于建议学习MATLAB的良好资源,您不应低估MATLAB文档的价值。我已经学会了自己使用它的大部分知识。您可以
在线访问它,也可以使用
DOC ,
HELP或
HELPWIN函数在您的MATLAB副本中访问它。
更多&回答...