Как работает меньшая поверхность квадратов в Matlab - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу сделать сетку из более мелкой сетки, какое-то представление о том, как это делается?То есть что-то вроде того, что путь по оси X и у 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.Аналогично я нахожу матрицу чувствительности и эластичности.

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)

Это результат: This is a surface of the matrix of sensitivity

Мне нужно уменьшить квадраты (сетку) поверхности.

есть идеи?

С наилучшими пожеланиями!

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете использовать interp2, если у вас есть (x, y), которые определены для senmat.Читайте про interp2.Если вы хотите, чтобы только senmat улучшил, используйте imresize.

A = imresize(senmat,[100,100]) ;
surf(A)

enter image description here

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