【问题标题】:subscript indices must be either positive integers or logicals下标索引必须是正整数或逻辑数
【发布时间】:2013-04-14 23:10:16
【问题描述】:

我知道这种类型的问题以前被问过很多次,但我无法理解我的代码存在的问题。我也是 Octave 的绝对初学者。

function Z=nat_spline(n, T, Y)
  for i=0:n-1
    H(i) = T(i+1) - T(i);
    B(i) = 6*(Y(i+1) - Y(i))/H(i);
  end
  U(1) = 2*(H(0)+H(1));
  V(1) = B(1) - B(0);
  for i=2:n-1
    U(i) = 2 * (H(i) + H(i-1)) - ( (H(i-1))^2 / U(i-1) );
    V(i) = B(i) - B(i-1) - H(i-1)*V(i-1)/U(i-1);
  end
  Z(n) = 0
  for i=n-1:1
    Z(i) = (V(i)-H(i)*Z(i+1))/U(i);
  end
  Z(0) = 0;
end

它的代码很短,所以我想很容易发现任何错误。非常感谢您的帮助。

【问题讨论】:

标签: matlab octave spline


【解决方案1】:

在 matlab 中数组的索引从 1 开始 :) 你的 H(i) 和 B(i) 在循环的第一次迭代中将是 H(0) B(0) ,这会给你一个错误 所以for i=1:n

【讨论】:

    【解决方案2】:

    好吧,标题告诉它:如果不是逻辑的话。下标必须是严格的正整数值。 H(0)Z(0) 之类的东西不起作用,因为严格的正整数值以 1 开头。

    【讨论】:

      猜你喜欢
      • 2012-04-14
      • 2016-02-16
      • 2014-09-11
      • 2012-11-27
      • 2013-12-04
      • 2016-06-12
      • 1970-01-01
      相关资源
      最近更新 更多