Странная ошибка Matlab: «Индексы нижнего индекса должны быть либо натуральными числами, либо логическими числами» - PullRequest
1 голос
/ 31 мая 2010

У меня есть функция func, которая возвращает вектор a.Я обычно строю график, а затем выполняю дальнейший анализ.У меня есть определенный сценарий, когда я пытаюсь построить a, я получаю ошибку «??? Subscript indices must either be real positive integers or logicals».Посмотрите на следующий фрагмент кода, чтобы увидеть поведение вектора:

K>> a

a =
    5.7047    6.3529    6.4826    5.5750    4.1488    5.8343    5.3157    5.4454    

K>> plot(a)
??? Subscript indices must either be real positive integers or logicals.

K>> for i=1:length(a); b(i) = a(i); end;
K>> b

b =
    5.7047    6.3529    6.4826    5.5750    4.1488    5.8343    5.3157    5.4454    

K>> plot(b)
??? Subscript indices must either be real positive integers or logicals.

Сценарий, в котором это происходит, когда я вызываю функцию func из другой функции (вызываю ее outer_func)вернуть результат непосредственно как результат outer_func.При отладке внутри outer_func я могу правильно построить график, но за пределами области действия outer_func его результат имеет описанное выше поведение.

Что может вызвать это?С чего начать?

1 Ответ

10 голосов
/ 31 мая 2010

Есть ли у вас где-нибудь внутри вашей функции строка, подобная этой:

plot = something

В этом случае plot считается массивом внутри функции, и может произойти ошибка.

В качестве отступления: вы можете заменить цикл на b=a.

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