我想通过
Octave
绘制两个梯形MF的合成。这是我尝试过的:
%MAX composite
pkg load linear-algebra
tx = ty = linspace (-10,10,100)';
cartesian_prod_domain = cartprod(tx,ty);
a = -6; b = -2; c = 2;d = 6;
trape_x = max(min(min(1, (cartesian_prod_domain(:,1) - a)/(b - a)), -(cartesian_prod_domain(:,1) - d)/(d - c) ),0);
trape_y = max(min(min(1, (cartesian_prod_domain(:,2) - a)/(b - a)), -(cartesian_prod_domain(:,2) - d)/(d - c) ),0);
cartesian_prod_range = (max([trape_x, trape_y]'))';
plot3 (cartesian_prod_domain(:,1), cartesian_prod_domain(:,2), cartesian_prod_range);
这就是我得到的:
如您所见,它是有线;但我想要得到像这样有表面的东西:
也许可以通过
mesh
来完成;但我不能。我怎样才能得到它?
surf / mesh 命令适用于“网格化”数据。试试这个:
a = -6; b = -2; c = 2; d = 6; Range = linspace( -10, 10, 100 );
[XGrid, YGrid] = ndgrid( Range, Range );
trape_x = max( min( min( 1, (XGrid - a) / (b - a) ), - (XGrid - d) /(d - c) ), 0 );
trape_y = max( min( min( 1, (YGrid - a) / (b - a) ), - (YGrid - d) /(d - c) ), 0 );
Zout = max( trape_x, trape_y );
surf( XGrid, YGrid, Zout );