matlab :Too many output arguments.

我定义了一个函数
function [x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
x=[n>=n0];
如果这样调用[x,n]=stepseq(0,-10,10)-stepseq(5,-10,10);就会报错
[x,n]=stepseq(0,-10,10)这样调用就不会报错。。。。
还有假如我定义一个函数时定义了两个输出,但我调用时只把这个函数赋给了一个变量,比如x=stepseq[0,-10,10],为什么得到的x只有21个数而不是42个?
本人初学,求指教。。。。

1、stepseq(0,-10,10)-stepseq(5,-10,10);这样的语句是错误的,函数stepsep的输出是2个量,不是一个。需要分别赋值
[x1,n1]=stepseq(0,-10,10);
[x2,n2]=stepseq(5,-10,10);
再对上面变量做运算
2、x=[n>=n0];这句的含义是表示判断n中的数,大于等于n0则为1,否则为0,。n是-10到10共有21个数,当然结果是21个了。想让他显示42个数,是把21个x的值与21个n的值写在一起,这个要改一下。
[x1,n1]=stepseq(0,-10,10);
x=[x1,n1];追问

x=stepseq(0,-10,10)-stepseq(5,-10,10);为什么直接这样写是可以的?

追答

matlab默认的输出是只有第一个变量x的,两个输出的话会出错就是这样造成

温馨提示:答案为网友推荐,仅供参考
相似回答