在八度音阶中绘制函数将单个值转换为矩阵

时间:2016-07-27 21:33:50

标签: matlab octave

我是八度新人。我想为每个theta绘制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] 其中θ是用θ= 0:0.01:1

生成的

积(THETA,compute_lh(d,θ-))

错误:compute_lh:operator *:不一致的参数(op1是1x101,op2是1x101) 错误:从第29行第10列的compute_lh调用 错误:评估参数列表元素编号2

我不知道为什么在绘图时将theta转换为矩阵。

1 个答案:

答案 0 :(得分:0)

*运算符是矩阵乘法

您的错误发生是因为在第lh = lh * theta行,第一次调用它时,您将“矩阵乘以”标量与水平矩阵,从而产生水平矩阵。第二次,你试图将水平矩阵与另一个水平矩阵“矩阵相乘”,这不是一个数学上正确的操作,所以你得到一个错误。

大概你需要.*运算符,这是“逐元素”乘法。 更改为,您将看到所需的钟形曲线结果。