【问题标题】:Why am I getting "Array indices must be positive integers or logical values."为什么我会收到“数组索引必须是正整数或逻辑值”。
【发布时间】:2020-10-14 01:50:07
【问题描述】:

谁能找到我的代码在哪里抛出了这个函数的错误? alpha_p 和 width 都是所有数字都是正数的数组。

gain2 = (alpha_p.'./(1-exp(-alpha_p.'.*width.'))).*((((2.*(exp((-2.*alpha_.*(1-k)-alpha_p.').*width.'))-1))./(-2.*alpha_.*(1-k)-alpha_p.'))-(((exp(-2.*alpha_.*(1-k).*width')-k)./(exp(-alpha_(1-k).*width.')-k)).*((1-exp((-alpha_.*(1-k)-alpha_p.').*width.'))./(alpha_.*(1-k)+alpha_p.'))));

【问题讨论】:

  • 您可能希望将代码/功能分解成更小的部分。这使它更易于处理、更具可读性,并在调试时为您提供帮助。

标签: arrays matlab


【解决方案1】:

错误从下图中框指示的部分传播。可能是由于-alpha_(1-k) 之间缺少运算符造成的。当然假设变量alpha_ 是一个常量/标量而不是另一个数组。

扩展: 对每个变量使用查找功能进行调试,并查找任何不遵循有效索引的变量。

【讨论】:

  • 这是修复!可能看起来像一个愚蠢的问题,但有时你需要第二双眼睛。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 2012-04-14
相关资源
最近更新 更多