На вашем месте я бы использовал команду Surf doku surf .Используется для отображения [x, y, z] данных.Поскольку у вас не так много наборов данных (всего 6), вам придется интерполировать все остальные значения.Поэтому я бы использовал рассеянную интерполяционную функцию Доку рассеянный интерполант .
!!!!!!!!!!!!!! Позаботьтесь обо всем, что это псевдокод !!!!!!!!!!!!!!!!
F = scatteredInterpolant(x_existing,y_existing,z_existing);
создает рассеянный интерполированный объект.Вы уже добавили туда свои уже существующие данные.После этого вы генерируете точки, в которых вы хотите интерполировать:
%generates samples from -4 t0 4 in 0.05 steps
[x_sample,y_sample] = meshgrid(-4:0.05:4,-4:0.05:4);
Теперь вы вычисляете подобранные значения z, используя разбросанный интерполант obj
z_interpolated=F(x_sample,y_sample) %interpolates
surf(x_sample,y_sample,z_interpolated) %plots with surf between -4 and 4
!!!!!!!!!!!!!!! Отсюда рабочий код !!!!!!!!!!!!!!!!!!!!!
%serialiasation of data (special for this usecase)
x_data=[h0(30:632,6);(a30(28:408,3))+0.527;(a60(276:632,3));(a90(26:575,3))+3.417;(a120(188:586,3))-0.6625;(a150(16:380,3))+1.173];
y_data=[(h0(30:632,5));((a30(28:408,2))-0.9128);(a60(276:632,2));(a90(26:575,2));(a120(188:586,2))-0.3825;((a150(16:380,2))+2.032)];
z_data=[yA0;yA30+0.162;yA60;yA90+0.837;yA120+0.135;yA150+0.135];
% cleaning the data of nan values
x_data=x_data(~isnan(z_data));
y_data=y_data(~isnan(z_data));
z_data=z_data(~isnan(z_data));%random for the looks
%interpolating
F=scatteredInterpolant(x_data,y_data,z_data);
%read yourself what this does
F.Method = 'natural';
F.ExtrapolationMethod = 'none';
%choosing sample points
[x_sample,y_sample] = meshgrid(-6:0.05:6,-6:0.05:6);
%interpolation
z_interpolated=F(x_sample,y_sample);
%plot
surf(x_sample,y_sample,z_interpolated)
Надеюсь, я смог вам помочь.Если вы попробуете это, и это сработает, было бы очень приятно, чтобы вы опубликовали здесь рабочий код, чтобы в будущем здесь было работающее решение.