Matlab &引用;无法从字面上证明“expr…”;尝试比较函数内的符号时出错

Matlab &引用;无法从字面上证明“expr…”;尝试比较函数内的符号时出错,matlab,symbolic-math,Matlab,Symbolic Math,我刚开始学习MATLAB,我正在尝试规范化 function b = bump(x) region1 = abs(x) < 1 b(region1) = (exp(-1./(1 - x(region1).^2))) region2 = abs(x) >= 1 b(region2) = 0 end 我收到一条很长的错误消息,上面说 使用符号引擎时出错(第58行) 无法从字面上证明“abs(x)privformat(第2357行)中出错 x=子指数x(x)+1 sym/subsref中

我刚开始学习MATLAB,我正在尝试规范化

function b = bump(x)
region1 = abs(x) < 1
b(region1) = (exp(-1./(1 - x(region1).^2)))
region2 = abs(x) >= 1
b(region2) = 0
end
我收到一条很长的错误消息,上面说

使用符号引擎时出错(第58行)
无法从字面上证明“abs(x)<1”。要从数学上测试语句,请使用isAlways

符号/子索引中的错误(第1554行)
X=find(mupadmex('symobj::logical',A.s,9))-1

sym>privformat(第2357行)中出错
x=子指数x(x)+1

sym/subsref中的错误(第1578行)
[inds{k},refs{k}]=privformat(inds{k})

通气错误(第3行)
b(区域1)=(exp(-1./(1-x(区域1)。^2)))


我尝试替换
abs(x)
symsx
x
定义为符号变量,在
x
上调用符号计算。这可能不是你想要的

相反,将
x
定义为某种类型的输入矩阵,例如
x=0(3)。或者,要进行数值积分,请使用以下函数:

integral(@bump, -1, 1)

你是故意使用符号对象吗?@Eitan:如果他只是在学习MATLAB,那么我猜“不是”。@NNONONNEO我是在试图不让OP开口说话,这就是我问的原因。Eitan是对的。我学习MATLAB的过程包括在谷歌上搜索“MATLAB集成”并查看结果。所以,这可能不是我想要的。我将
x
更改为
x=-2:.01:2
,但现在它为类型为“double”的输入参数显示了
未定义的函数“int”。
这是什么意思?啊。我现在明白了。你需要一个积分,它需要一个函数。您首先看到了符号文档,因此之后就没有看到数值积分函数。我为
integral
添加了一个示例。
integral(@bump, -1, 1)