博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Matlab 之索引必须是正整数或逻辑变量
阅读量:5011 次
发布时间:2019-06-12

本文共 606 字,大约阅读时间需要 2 分钟。

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

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

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

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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/feigebaqi/p/10676754.html

你可能感兴趣的文章
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
NOI 2019 退役记
查看>>
java的几个日志框架log4j、logback、common-logging
查看>>
Java从零开始学十三(封装)
查看>>
Python2和Python3中的rang()不同之点
查看>>
MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作)...
查看>>
UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
查看>>
记忆--1.致我们不可缺少的记忆
查看>>
lintcode28- Search a 2D Matrix- easy
查看>>
react项目
查看>>
C# 万年历 农历 节气 节日 星座 星宿 属相 生肖 闰年月 时辰(转)
查看>>
A Simple Tree Problem
查看>>
Modular Inverse [ZOJ 3609]
查看>>
MySQL性能测试工具之mysqlslap使用详解
查看>>