N-мерное индексирование разрешено только для полных матриц - PullRequest
0 голосов
/ 12 октября 2019

Я не очень знаком с MATLAB, и я получил следующий код:

function [grad] =laplacian(nx,ny,dx,dy)

format long;

nxny=nx*ny;

r=zeros(1,nx);
r(1:2)=[2,-1];
T=toeplitz(r);

E=speye(nx);

grad=-(kron(T,E)+kron(E,T));

%-- for periodic boundaries

for i=1:nx
ii=(i-1)*nx+1;
jj=ii+nx-1;
grad(ii,jj)=1.0;
grad(jj,ii)=1.0;

kk=nxny-nx+i;
grad(i,kk)=1.0;
grad(kk,i)=1.0;
end

grad = grad /(dx*dy);

end %endfunction

Затем, когда я использую эту функцию, как это [g]=laplacian(Nx, Ny, Dx, Dy).

Она показывает мнепроблема N-мерное индексирование разрешено только для полных матриц

В зависимости от проблемы, я думаю, что это переменная матриц grad, которая вызывает проблему, но яне могу исправить ошибку правильно, поэтому я выкладываю ее здесь.

Не могли бы вы мне помочь?

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