Как создать поверхностный график с неравным векторным размером - PullRequest
0 голосов
/ 09 мая 2018
clc
clear all
n1=rand(1,10);
n2=rand(1,10);
n3=rand(1,10);
n4=rand(1,10);
m1=rand(1,10);
m2=rand(1,10);
m3=rand(1,10);
m4=rand(1,10);
n=[n1;n2;n3;n4];
m=[m1;m2;m3;m4];
z=[0.1,0.2,0.3,0.4];

Я хочу создать график поверхности, используя приведенные выше данные. Для заданного графика z = 0.1 (n1, m1), для графика z = 0.2 (n2, m2) .... как объединить все это, чтобы получить график поверхности

1 Ответ

0 голосов
/ 10 мая 2018

Ответ Mathwork на как построить разбросанные данные должен дать вам лучшее начало.

Я предполагаю, что ваш минимальный пример неверен в отношении z, потому что все данные должны иметь одинаковое измерение. Исправляя это, интерполяция является одним из ответов на ваш подход. Перейдя по указанной ссылке, она должна выглядеть так:

n = rand(4,10);
m = rand(4,10);
z=repmat([0.1 : 0.1 : 0.4]',1,size(n,2));
resolution = 0.01;
[xi,yi] = meshgrid(min(n):resolution:max(n), min(m):resolution:max(m));
zi = griddata(n,m,z,xi,yi);
surf(xi,yi,zi);
...