MATLAB / Octave - 网格图的问题

时间:2013-09-17 16:30:25

标签: matlab octave

我试图在Octave中对以下函数进行网格划分:

  function C = istep(x)
      A = x < 0.75
      B = x > 0.25
      C = A & B
  endfunction

  D = rand(10);
  mesh(istep(D));

使用10x10(随机)矩阵作为输入。然而,网格函数失败并触发

invalid value for array property "zdata"

注意:网格划分D本身运行正常。函数istep还返回具有预期值的10x10“矩阵”。我怀疑错误在于输出的内部格式不被视为矩阵,而是作为数据“数组”或更抽象的东西。我不知道如何更改它。

此外,将输出乘以眼睛(大小(D))可以解决问题并允许绘制矩阵(我怀疑它会自动将输出转换为矩阵)。我不觉得这很优雅,如果可能的话我想避免它。

编辑: spy()直接在输出上正常工作,无需乘眼()

问题:我应该在代码中更改什么,以便能够绘制矩阵istep(D)?

1 个答案:

答案 0 :(得分:2)

函数的输出返回逻辑值。所以,请执行以下操作:

  mesh(double(istep(D)));