poster
2019-12-14, 20:46
我有这段代码,它可以正确绘制高斯模型,但是当尝试用网格绘制它时,我有一个错误,请告诉我如何纠正它:
covariances = [1 0; 0 1]; Mean = [1 0] mycolor = 'r'; icov = inv(covariances); det_cov = det(covariances); const = 1/(2*pi*sqrt(det_cov)); xx = linspace(Mean(1)-3*sqrt(covariances(1,1)),Mean(1)+3*sqrt(covariances(1,1))); yy = linspace(Mean(2)-3*sqrt(covariances(2,2)),Mean(2)+3*sqrt(covariances(2,2))); [xy] = meshgrid(xx,yy); mx=x-Mean(1); my = y-Mean(2); z=const*exp(-0.5*(icov(1,1)*mx.^2+icov(2,1)*mx.*my +icov(2,1)*my.*mx+icov(2,2)*my.^2)); figure(1) contour(x,y,z,mycolor); figure(2) mesh(x,y,z,mycolor); 我遇到了mesh(x,y,z,mycolor);
??? Error using ==> mesh at 72 Property value pairs expected.
回答:
由于mycolor是一个字符串,而不是与x , y和z大小相同的颜色值矩阵,因此MESH (http://www.mathworks.com/help/techdoc/ref/mesh.html)希望将其作为属性/值对输入 (http://www.mathworks.com/help/techdoc/ref/surfaceplotproperties.html) ,如下所示:
mesh(x,y,z,'EdgeColor',mycolor); 我建议您查阅文档以获取有关为网格和表面图着色的 (http://www.mathworks.com/help/techdoc/visualize/f0-18164.html)更多信息。
更多&回答... (https://stackoverflow.com/questions/5354769)
covariances = [1 0; 0 1]; Mean = [1 0] mycolor = 'r'; icov = inv(covariances); det_cov = det(covariances); const = 1/(2*pi*sqrt(det_cov)); xx = linspace(Mean(1)-3*sqrt(covariances(1,1)),Mean(1)+3*sqrt(covariances(1,1))); yy = linspace(Mean(2)-3*sqrt(covariances(2,2)),Mean(2)+3*sqrt(covariances(2,2))); [xy] = meshgrid(xx,yy); mx=x-Mean(1); my = y-Mean(2); z=const*exp(-0.5*(icov(1,1)*mx.^2+icov(2,1)*mx.*my +icov(2,1)*my.*mx+icov(2,2)*my.^2)); figure(1) contour(x,y,z,mycolor); figure(2) mesh(x,y,z,mycolor); 我遇到了mesh(x,y,z,mycolor);
??? Error using ==> mesh at 72 Property value pairs expected.
回答:
由于mycolor是一个字符串,而不是与x , y和z大小相同的颜色值矩阵,因此MESH (http://www.mathworks.com/help/techdoc/ref/mesh.html)希望将其作为属性/值对输入 (http://www.mathworks.com/help/techdoc/ref/surfaceplotproperties.html) ,如下所示:
mesh(x,y,z,'EdgeColor',mycolor); 我建议您查阅文档以获取有关为网格和表面图着色的 (http://www.mathworks.com/help/techdoc/visualize/f0-18164.html)更多信息。
更多&回答... (https://stackoverflow.com/questions/5354769)