Индексы нижнего индекса должны быть либо действительными положительными целыми числами, либо логическими - PullRequest
0 голосов
/ 30 марта 2012

У меня есть следующая ошибка в моем коде функции Matlab:

??? Индексы нижнего индекса должны быть либо действительными положительными целыми числами, либо логическими.

Ошибка в ==> AFA на 15 M (k, j) = среднее (T (i: sze, j));

Вот часть кода, где проблема:

sz =size(T);
lim = sz(2) - ordre;
M = zeros(sz(1),sz(2));
r= 0;
for j=1:sze,
    k = 1;
for i=1:lim,
    M(k,j) = mean(T(i:i+ordre,j));
    k = k + 1;    
end

for i=lim+1:sz(2),
    M(k,j) = mean(T(i:sz(2),j));
    k = k + 1; 
end
end

1 Ответ

0 голосов
/ 30 марта 2012

у меня работает без ошибок

T = magic(25);ordre = 5; %# I make up some values here
sz =size(T);
lim = sz(2) - ordre;
%# I've added a check here
if lim < 1, error('ordre has to be at most sz(2)-1 (is %i)',ordre);end
M = zeros(sz(1),sz(2));
r= 0;
for j=1:sz(2), %# I needed to change this line (sz(1) works as well)
    k = 1;
for i=1:lim,
    M(k,j) = mean(T(i:i+ordre,j));
    k = k + 1;    
end

for i=lim+1:sz(2),
    M(k,j) = mean(T(i:sz(2),j));
    k = k + 1; 
end

end

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...