Matlab 绘图错误“;内存耗尽或请求的大小太大”;
如果我想用倍频程画一个sin(x)图形,我会这样做Matlab 绘图错误“;内存耗尽或请求的大小太大”;,matlab,plot,octave,Matlab,Plot,Octave,如果我想用倍频程画一个sin(x)图形,我会这样做 x = -6:0.1:6; plot (x, sin(x)); 这是有效的 我想画一个S形函数,所以我试了一下 x = -6:0.1:6; plot (x, 1/(1+exp(-x))); 但这给了我 error: memory exhausted or requested size too large for range of Octave's index type -- trying to return to prompt 我尝试了x
x = -6:0.1:6;
plot (x, sin(x));
这是有效的
我想画一个S形函数,所以我试了一下
x = -6:0.1:6;
plot (x, 1/(1+exp(-x)));
但这给了我
error: memory exhausted or requested size too large for range of Octave's index type -- trying to return to prompt
我尝试了x=-4:0.2:4代码>这一次得到了
error: invalid conversion of NDArray to Matrix
error: evaluating argument list element number 2
问题出在哪里?问题出在1/(1+exp(-x))
中。MATLAB抛出的错误是:
Error using /
Matrix dimensions must agree.
根据倍频程,故障为:
operator /: nonconformant arguments (op1 is 1x1, op2 is 1x121)
你想要的是(注意点):
尝试绘图(x,1./(1+exp(-x))代码>嗯,这很有效。重点是什么?使用实数1(1.)?哦,我现在看到了元素除法。我看到只有在可能出现混淆的情况下才需要元素点运算符。(如除法、乘法等)。谢谢。@ChanKim+
、exp
、sin
等已按元素执行(请检查其文档)<但是,code>/
和*
通常充当矩阵运算符,因此您必须明确地告诉它按元素进行操作,即在它们前面加一个点。实际上,八度音程也会因运算符/:非一致参数(op1是1x1,op2是1x121)
而在该操作中失败。OP错误可能来自其他地方,不能用八度音阶的代码复制(我在八度音阶3.8、4.0和未发布的4.1上试过)。
x = -6:0.1:6;
plot (x, 1./(1+exp(-x)));