如何在MATLAB中对以下内容进行矢量化?
n=1000;
m=n;
for i=1:n
T(i,i)=i.^2;
for j=1:m
x(i,j)=2*((i+j)^(-2)-(i-j)^(-2))/pi;
end
x(i,i)=0;
end
for i=1:n
for j=1:m
if mod(i,2)==mod(j,2)
x(i,j)=0;
end
end
end
答案 0 :(得分:2)
T
:
T = diag((1:n).^2);
x
:
[ii jj] = meshgrid(1:n,1:m);
x = 2*((ii+jj).^(-2)-(ii-jj).^(-2))/pi;
x(mod(ii,2)==mod(jj,2))=0;