如何在 matlab 中生成较小的曲面正方形
How does a smaller surface squares in matlab
我想做小网格的网格,请问是怎么做的?
就是说x轴和y中的路径是0.25中的0.25,
x = (0: 0.25: 7);
y = (0: 0.25: 7);
我有以下矩阵。这个矩阵模拟人口的动态(投影矩阵)
L2=[0 0 0 0 127 4 80;
0.6747 0.7370 0 0 0 0 0;
0 0.0486 0.6610 0 0 0 0;
0 0 0.0147 0.6907 0 0 0;
0 0 0 0.0518 0 0 0;
0 0 0 0 0.8091 0 0;
0 0 0 0 0 0.8091 0.8089];
使用这段代码,我找到了 L2 的右和左 eingenvectors。同样,我找到了灵敏度和弹性矩阵。
A=L2;
[W,lambdas]=eig(A);
V=conj(inv(W));
lambdas=diag(lambdas);
[lambdas,I]=sort(lambdas);
lambdas=flipud(lambdas);
lambda1=lambdas(1);
I=flipud(I);
W=W(:,I);
V=V(I,:);
w=W(:,1);
w=w/sum(w);
v=real(V(1,:))';
v=v/v(1);
% matrix of sensitivity
senmat=v*w';
% matrix of elasticity
emat=senmat.*A/max(eig(A));
然后,我制作了一个敏感度矩阵的曲面。
surf(senmat)
这是结果:
我需要把表面的正方形(网格)变小。
有什么想法吗?
此致!
如果你有为 senmat 定义的 (x,y),你可以使用 interp2。阅读有关 interp2 的信息。如果你只想用 senmat 来优化使用 imresize。
A = imresize(senmat,[100,100]) ;
surf(A)
我想做小网格的网格,请问是怎么做的? 就是说x轴和y中的路径是0.25中的0.25,
x = (0: 0.25: 7);
y = (0: 0.25: 7);
我有以下矩阵。这个矩阵模拟人口的动态(投影矩阵)
L2=[0 0 0 0 127 4 80;
0.6747 0.7370 0 0 0 0 0;
0 0.0486 0.6610 0 0 0 0;
0 0 0.0147 0.6907 0 0 0;
0 0 0 0.0518 0 0 0;
0 0 0 0 0.8091 0 0;
0 0 0 0 0 0.8091 0.8089];
使用这段代码,我找到了 L2 的右和左 eingenvectors。同样,我找到了灵敏度和弹性矩阵。
A=L2;
[W,lambdas]=eig(A);
V=conj(inv(W));
lambdas=diag(lambdas);
[lambdas,I]=sort(lambdas);
lambdas=flipud(lambdas);
lambda1=lambdas(1);
I=flipud(I);
W=W(:,I);
V=V(I,:);
w=W(:,1);
w=w/sum(w);
v=real(V(1,:))';
v=v/v(1);
% matrix of sensitivity
senmat=v*w';
% matrix of elasticity
emat=senmat.*A/max(eig(A));
然后,我制作了一个敏感度矩阵的曲面。
surf(senmat)
这是结果:
我需要把表面的正方形(网格)变小。
有什么想法吗?
此致!
如果你有为 senmat 定义的 (x,y),你可以使用 interp2。阅读有关 interp2 的信息。如果你只想用 senmat 来优化使用 imresize。
A = imresize(senmat,[100,100]) ;
surf(A)