指数在位置1超出数组边界(不得超过1)。

20视图(30天)
你好,我通过了其他查询下同样的错误。我得到它是什么意思,但还是不明白为什么它出现在我的情况。
是否有任何其他原因或我还犯同样的错误。可能有人请检查以下代码,帮助我吗?
%一些代码产生数组WCM早些时候,WBM, KSM,移动,BTM,个子。这些数组转换为矩阵的大小10 X 86400。
%但是在输入文件——如果任何输入变量(WM WC,世行,KS, BT, OT)缺席那么相应的变量,例如WCM WBM等设置为零。
% NumWC, NumWB等默认设置为1的价值。
如果isempty (WCM)
WCM = 0;
结束
如果isempty (WBM)
WBM = 0;
结束
如果KSM isempty ()
KSM = 0;
结束
如果isempty (BTM)
BTM = 0;
结束
如果isempty(移动)
移动= 0;
结束
如果isempty(个子
个子= 0;
结束
i = 1:10
(我:)= NumWC。* WCM(我:)+ NumWB。* WBM(我:)+ NumKS。* KSM(我:)+ NumBT。* BTM(我:)+ NumOT。*移动+ NumWM。*个子;
结束
%当任何我输入文件第一次四个变量(WC,世行、BT、KS),没有问题。我得到了所有的价值。
%,但是当我输入文件只有两个变量(WC和世行)或只有一个变量(WC),我得到错误”指数在位置1超出数组边界(不得超过1)。”
所有的变量(WCM WBM…等)应该是大小10 x 86400。和NumWC NumWB ....等标量值。
当我只有WC WC和世行作为输入变量,得到误差。你能帮我了解我失踪吗?

接受的答案

Harikrishnan Balachandran Nair
编辑:Harikrishnan Balachandran Nair 2021年9月24日
你好,
我明白,你是遇到一个错误说”指数在位置1超出数组边界”,在运行代码。
在你提供的代码,您的输入变量设置为' 0 '如果这是一个空数组。这集的输入一个1 * 1双数组。当你试图访问“i”在相应的输入行,你将面临一个索引错误,当我是大于1。
您可以使用“解决这个问题 0 在matlab的函数来初始化输入作为一个10 * 86400 0的数组,这是你期待的维度。你可以参考下面的代码。
如果isempty (WCM)
WCM = 0 (86400);
结束
3评论
罗希特Mangalekar
罗希特Mangalekar 2021年9月26日
谢谢先生。它工作。有一些语法错误。谢谢你的帮助。

登录置评。

更多的答案(0)

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的