在 matlab 中使用 'patch' 函数时出错

Error while using 'patch' function in matlab

我正在尝试绘制 3d 对象的表面网格的四边形补丁。我有 x,y,z4Xn,其中 4 代表四边形的每个顶点,n 是数字四边形的数量,c 这是一个 3Xn RGB 矩阵。当使用 patch( x, y, z,c);
我收到错误

`Error using patch`
`Size of C must match sizes of X Y [Z]`

但这适用于 x,y,z3Xn 用于三角形补丁,c 3Xn RGB 向量。请纠正我出错的地方。

无需为每个 patch 提供单个 RGB 值,您需要为要绘制的每个顶点提供 patch 值(由于数据格式)。

所以你的数据和这一行:

cQuad=permute(repmat(cQuad,[1 1 4]),[3 2 1]);

patch(vertQuad.x,vertQuad.y,vertQuad.z,cQuad)

工作正常。我所做的是使用 repmat 重复颜色 4 次,然后使用 permute

patch 喜欢的格式订购尺寸