Matlab“;“补丁”;scilab中的等效

Matlab“;“补丁”;scilab中的等效,matlab,plot,scilab,Matlab,Plot,Scilab,我需要在Scilab中使用命令Plot3d绘制一个四边形面,但我无法找到一种方法来指定顶点处与实际值成比例的颜色 在Matlab中的patch命令中,我可以在顶点指定一种颜色,与实数给定的值成比例(例如,值为3.6的顶点将具有与值为3.2的顶点不同的颜色) 在scilab中,plot3D似乎只能管理整数值 我尝试了以下代码: xf = [0, 1; 1 ,2; 1, 2; 0, 1 ]; yf = [1, 1;1, 2;1, 1;1, 1 ]; zf = [0, 0 ;

我需要在Scilab中使用命令Plot3d绘制一个四边形面,但我无法找到一种方法来指定顶点处与实际值成比例的颜色

在Matlab中的patch命令中,我可以在顶点指定一种颜色,与实数给定的值成比例(例如,值为3.6的顶点将具有与值为3.2的顶点不同的颜色)

在scilab中,plot3D似乎只能管理整数值

我尝试了以下代码:

    xf = [0, 1; 1 ,2; 1, 2; 0, 1 ];
    yf = [1, 1;1, 2;1, 1;1, 1 ];
    zf = [0, 0 ; 0, 0; 5,5 ;5, 5 ];
colors = [1 1;2 2 ;3.5 3;4.5 4 ];
plot3d(xf,yf,list(zf,colors) ,[0,0,0,flag,3] )
但是颜色是相同的,即使矩阵颜色中指定的值略有不同

有人知道如何解决这个问题吗


谢谢

给定的
颜色
参数用作索引(因此是整数)以在颜色映射中查找颜色。这就是为什么它们是一样的

在您的示例中,您可以缩放
color
列表,并设置具有更多值的大型colormap。比如说

//Assuming default flags
flags=[2,8,4]
xf = [0, 1; 1 ,2; 1, 2; 0, 1 ];
yf = [1, 1;1, 2;1, 1;1, 1 ];
zf = [0, 0 ; 0, 0; 5,5 ;5, 5 ];

colors = [1 1;2 2 ;3.5 3;4.5 4 ];
// Scale colors
max_value = max(colors)
nr_of_colors = 128
scaled_colors = colors / max_value * nr_of_colors

plot3d(xf,yf,list(zf,scaled_colors) ,[0,0,0,flag,3] )

// Set colormap
fig = gcf()
fig.color_map = hotcolormap(nr_of_colors)

// To show the current colormap
getcolor()
将产生一个更连续的颜色贴图,该贴图将反映稍微不同的颜色