В основном у вас есть 3 матрицы:
% define x_range and y_range as you wish
[x, y] - meshgrid(x_range,y_range)
z = some_function_of_x_and_y
Теперь вам нужно преобразовать эти три матрицы в векторы строк:
sizes = size(x)
x_row = reshape(x, sizes(1) * sizes(2), 1)
y_row = reshape(y, sizes(1) * sizes(2), 1)
z_row = reshape(z, sizes(1) * sizes(2), 1)
и еще один из индексов:
indeces = [1:length(x_row)]'
и теперь ваш список:
result = [indeces x_row y_row z_row]
Например:
x_range = [1,2,3];
y_range = [1,2,3];
>> [x,y] = meshgrid(x_range, y_range)
x =
1 2 3
1 2 3
1 2 3
y =
1 1 1
2 2 2
3 3 3
>> z = x+y
z =
2 3 4
3 4 5
4 5 6
>> x_row = reshape(x, sizes(1) * sizes(2), 1);
>> y_row = reshape(y, sizes(1) * sizes(2), 1);
>> z_row = reshape(z, sizes(1) * sizes(2), 1);
>> indeces = [1:length(x_row)]';
>> result = [indeces x_row y_row z_row]
result =
1 1 1 2
2 1 2 3
3 1 3 4
4 2 1 3
5 2 2 4
6 2 3 5
7 3 1 4
8 3 2 5
9 3 3 6
Теперь result
содержит значения в первом столбце, а (x,y,z)
в остальных столбцах. Вы должны быть в состоянии извлечь то, что вы хотите оттуда.