Error in script Subscript indices must either be real positive integers or logicals.
1 次查看(过去 30 天)
显示 更早的评论
I am trying to calculate the mean, max and min values from an array under some condition and at some specific case i get a very "strange" error
Subscript indices must either be real positive integers or logicals.
Error in MeanHourlyTOC (line 31)
minTOC = min(dummy);
since i am able to calculate the max and mean values and this error is referred just in the min value. My code is as follow
l=0;
for i=1982:2012
for j=1:12
for k=1:24
idx=find(Yr==i&M==j&T==k);
dummy=TOC(idx);
dummy(isnan(dummy))=[];
if ~isempty(dummy)
l=l+1;
mTOC = mean(dummy);
sTOC = std(dummy);
maxTOC = max(dummy);
minTOC = min(dummy);
dy = decyear(i,j,15,k,0,0);
Output.hTOCMonthlyMean(l,:) = [dy i j k mTOC sTOC maxTOC minTOC length(dummy)];
end
end
end
end
and the moment the script terminates the array dummy is
>> dummy
dummy =
368.8352
334.5709
341.9396
I would appreciate any help to resolve this issue
0 个评论
采纳的回答
更多回答(1 个)
Adam
2014-11-7
Do you have a variable named min further up the code?
The error message is typical of such a scenario where the code thinks that the instruction
minTOC = min(dummy);
is trying to index into a variable called 'min' using whatever is in dummy as indices rather than call the 'min' function.
Variables always take precedence over functions and will hide them if you reuse the name of a function as a variable.
which min
at the appropriate point will tell you whether you have such a variable. If you don't it will point you to where the builtin function is, if you have a variable it will just say:
min is a variable.
3 个评论
Adam
2014-11-7
That is interesting.
clear min
would normally clear a variable called min and thus work in that way. It would also clear any other functions and other detritus in its cache called min, but that is quite surprising that you got such behaviour with no variable called min.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!