Eu estou tentando plotar dados existentes que estão em matrizes. Quando tento traçar, recebo o erro:
"Os índices subscritos devem ser reais inteiros positivos ou lógicos ".
Erro no Plot_Displacement_Linear (linha 35) plotagem (xn (:), ucp (:), "rs", xn (:), ucp_actual (:), "g")
Isso é muito estranho como o ":"operador não é um índice específico, mas significa apenas, acessar todos os dados como uma matriz. Ele deve ter trabalhado e tem no passado. Eu investiguei xn, ucp e ucp_actual. Eles são arrays 3D como eles correspondem a posições em um volume, mas Eu estou interessado em plotá-los apenas contra xn, que é a posição x atual no volume.Portanto, eu os acesse como xn (:), ucp (:), ucp_actual (:). Eu recebo esse erro como resultado. para matrizes 2D, eu acho, mas é a primeira vez que eu tenho alimentado matrizes 3D através do código.
Eu investiguei as matrizes como dadas na função de plotagem, definindo novas variáveis como:
xni = xn(:);
ucpi = ucp(:);
ucp_ai = ucp_actual(:);
todos eles saem como matrizes 1-D que são todos 404600x1 (double). Então, o enredo deveria ter lidado com eles tudo bem. Eles são todos do mesmo tamanho.
Para ver se era apenas uma falha no acesso 3D, usei as variáveis redefinidas acima e tentei:
plot(xni(:),ucpi(:)," rs",xni(:),ucp_ai(:),"g"),
plot(xni(:),ucpi(:),xni(:),ucp_ai(:)),
plot(xni,ucpi,xni,ucp_ai),
and finally: plot(xni,ucpi) and plot(xni",ucpi").
Nada funcionou, todos geraram o erro idêntico, mesmo quando não havia nenhum índice sendo acessado para falar e apenas dois vetores do mesmo tamanho. Alguém tem alguma ideia do que está acontecendo?
desde já, obrigado,
Dan M
Respostas:
0 para resposta № 1EDITAR: Ok, eu acho que resolvi o problema, depois de tentar o seguinte, eu sabia que algo mais profundo estava errado:
>> ans = [1;2;3];
>> ans2 = [1;2;3];
>> plot(ans,ans2)
Error: "Index exceeds matrix dimensions."
Não há índices novamente, e eu acabei de definiressas matrizes. Depois de investigar meu campo de dados, descobri que havia definido uma variável chamada "plot", de modo que fiquei confuso. Estou surpreso matlab mesmo deixe-me fazer isso. Depois de usar o "lote claro" o código funcionou perfeitamente, desculpe pelo problema.