![](/img/trans.png)
[英]How to define a matrix valued function in Matlab/Octave — return value syntax
[英]Plot function in octave converting single value to matrix
我是八度的新手。 我想绘制每个θ的lh值。 我正在使用下面的函数计算该lh值。
function lh = compute_lh (D, theta)
lh = 1
for i=D
if i == 1
lh = lh * theta
else
lh = lh * (1-theta)
endif
end
endfunction
D = = [1,1,1,1,1,1,0,0,0,0]其中theta是通过theta = 0:0.01:1生成的
情节(theta,compute_lh(D,theta))
错误:compute_lh:运算符*:不一致的参数(op1为1x101,op2为1x101)错误:在第29行第10列从compute_lh调用错误:评估参数列表元素编号2
我不知道为什么在绘图时将theta转换为矩阵。
*
运算符是矩阵乘法 。
发生错误的原因是,在第一次调用lh = lh * theta
时,您是将标量与水平矩阵“矩阵相乘”,从而得到水平矩阵。 第二次,您试图将一个水平矩阵与另一个水平矩阵“矩阵相乘”,但这在数学上不是正确的运算,因此会出现错误。
大概需要.*
运算符,这是“按元素进行”乘法。 更改为该名称,您将看到所需的钟形曲线结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.