У меня есть метод, который используется внутри метода, каждый из них работает хорошо независимо друг от друга, но когда используется внутри одного возникает ошибкаВложенные функции в MATLAB
function [cov]=CC(a,b)
meana=mean(a);
meanb=mean(b);
entity=0;
for k=1:10
entity=entity+((a(1,k)-meana) * (b(1,k)-meanb));
end
cov=entity;
работает нормально, но если он используется внутри этого метода возникают некоторые ошибки что говорит
??? Попытка получить доступ к b (1,10); индекс за пределами границ, потому что размер (b) = [1,9].
Ошибка в ==> CC в 9
entity=entity+((a(1,k)-meana) * (b(1,k)-meanb));
Ошибка в ==> CM на 8
e=CC(dim(1,i:10),dim(1,j:10));
Функция CM
показана ниже
function [covM]=CM(a,b)
dim=[a b];
for i=1:2
for j=1:2
e=CC(dim(1,i:10),dim(1,j:10));
end
end
covM=e;
Так что делает это заявление " ??? Attempted to access b(10); index out of bounds because numel(b)=9 "
означает? b
является [1,10]
не [1,9]
ошибка явно. b - вектор [1,9]. поэтому доступ к индексу 10 невозможен. – ASantosRibeiro
Кроме того, ошибка возникает из-за того, что вы уменьшаете размер dim-массива в строке 'CC (dim (...', используя индекс цикла – darthbith