• Matlab 之索引必须是正整数或逻辑变量


    最近用matlab编写程序时,这个错误让我郁闷了很长时间。明明写的是一个循环,第一个循环可以正常运转,而第二个循环则会报上述的错误;

    而且单步调试运行也不会出错,只有整体运行便会报错;经过多遍仔细的检查,感觉不会出现简单地索引逻辑的问题;

    终于发现是自己在定义函数时犯了一个简单地错误:[fitness,...]=fitness(x,y,zx....),输出中fitness为矩阵形式;

    如上自己定义函数时,某输出变量和函数的名字是一样的,这样就会造成下一步循环时,电脑无法识别你fitness到底是函数,还是变量

    总结来看,电脑应该是把fitness当做了变量,而fitness刚好是个矩阵,这样就会把后续调用函数的过程看作fitness矩阵的变量提取过程。

    但是矩阵变量提取只能输入行和列,且必须为整数;

    刚好输入变量都不是矩阵调用内部值的正确方法。因此会报错索引必须是正整数或逻辑变量

    试想,如果fitness函数只有两个整数变量,那程序则可以允许,结果就会很离谱的哦,哈哈,大家多注意吧!

    千万不要把输出变量和函数名称一样!

    比如,max=max(A(:,1));max取A矩阵第一列的最大值;此时电脑已经无法识别你的max是啥了,电脑肯定会把max当做变量,max函数已经从它的世界消失了!

  • 相关阅读:
    eventbus3-intellij-plugin插件搜不到
    flutter控件之CheckBox
    Java中常见数据结构:list与map -底层如何实现
    flutter控件之RadioButton
    git add Untracked files
    执行git push出现"Everything up-to-date"
    用flutter写一个精美的登录页面
    Android Studio最全插件整理
    Mac下git的环境搭建和基本使用
    上周热点回顾(7.1-7.7)团队
  • 原文地址:https://www.cnblogs.com/feigebaqi/p/10676754.html
Copyright © 2020-2023  润新知