Изменение сетки поверхности, созданной с помощью функции FIT в MATLAB

У меня есть следующий график, созданный с помощью функции FIT:

[xrData, yrData, zrData] = prepareSurfaceData( Vr, Vi, Cr );      %this is my data used
ftr = 'lowess';
surffitr = fit( [xrData, yrData], zrData, ftr, 'Normalize', 'on' );
%Then I can plot the surface:
plot(surffitr,[xrData, yrData], zrData)
grid on
set(gca,'FontSize',16)
set(gcf,'color','w')
set(gcf,'units','normalized','outerposition',[0 0 1 1]) %maximize plot window to be saved
xlabel('Real Part of $\bar{V}^{+}_{f}, Re(\bar{V}^{+}_{f}) (V)$ ','Interpreter','latex')
ylabel('Imaginary Part of $\bar{V}^{+}_{f}, Im(\bar{V}^{+}_{f}) (V)$ ','Interpreter','latex')
zlabel('Real Part of $I^{+}_{vd} (A)$','Interpreter','latex')

Который генерирует следующее: Сгенерированная поверхность

Дело в том, что я хотел изменить сетку поверхности, например, удалить ее или использовать другой шаблон (увеличив расстояние между ячейками).

Я не использую функцию surf() напрямую, поэтому немного не понимаю, как это сделать. Может ли кто-нибудь помочь мне?

Благодарю вас!


person Renan M. Furlaneto    schedule 02.05.2021    source источник


Ответы (1)


После того, как вы подобрали поверхность, вы можете применить ее к любой сетке, которую хотите.

Так, например, если вы хотите увеличить/уменьшить размер сетки, создайте новую сетку

[xNew, yNew] = meshgrid(minX:gridSizeX:maxX, minY:gridSizeY:maxY);

где вы определяете свои минимальные, максимальные значения и размер сетки для ваших переменных x и y, а затем применяете к ним подгонку

zNew = surffitr(xNew, ynew);

После этого вы можете построить его любым удобным для вас способом (используя прибой, контур и т. Д.).

person Matteo V    schedule 03.05.2021