/ / Strange Matlab error: “??? Os índices subscritos devem ser números inteiros ou lógicos reais positivos ”- matlab, plot

Erro estranho no Matlab: “??? Os índices subscritos devem ser números inteiros ou lógicos reais positivos ”- matlab, plot

Eu tenho uma função func que retorna um vetor a. Eu costumo traçar um e, em seguida, realizar uma análise mais aprofundada sobre isso. Eu tenho um certo cenário quando uma vez eu tento traçar um, eu recebo um "??? Subscript indices must either be real positive integers or logicals"erro. Dê uma olhada no seguinte trecho de código para ver o comportamento do vetor:

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.

O cenário em que isso acontece é quando eu chamo a função func de dentro de outra função (chame outer_func), e devolver o resultado diretamente outer_func"s resultado. Quando depuração dentro outer_func, Posso traçar um corretamente, mas fora do escopo de outer_func, seu resultado tem o comportamento acima.

O que pode causar isso? De onde eu começo?

Respostas:

10 para resposta № 1

Você, em algum lugar dentro de sua função, tem uma linha como esta:

plot = something

Nesse caso, a plotagem é considerada uma matriz dentro da função e seu erro pode ocorrer.

Como um aparte: você poderia substituir o loop por b=a.