% ERROR_ELLIPSE -绘制错误椭圆或椭球,定义
%置信区域
% ERROR_ELLIPSE(C22) -给定2x2协方差矩阵,绘制
%关联误差椭圆,在原点。它返回一个图形句柄
已绘制椭圆的%。
%
%error_ellipse(c33) - 给定3x3协方差矩阵,绘制
%相关误差椭球,在原点,以及它的投影
%在三个轴上。对象返回包含4个图形句柄的向量
%三个椭圆(分别在X-Y, Y-Z和Z-X平面)和for
%的椭球体。
%
%error_ellipse(c,mu) - 绘制椭圆形或椭圆形,以%mu为中心,其长度应匹配c(这是2x2)的矢量
%或3 x3)。
%
% ERROR_ELLIPSE(…,Property1, Value1, Name2, Value2,…)
%指定属性的值,包括:
%'C' - 指定协方差矩阵的替代方法
% 'mu' -指定椭圆(-oid)中心的替代方法
% 'conf'—一个介于0和1之间的值,指定置信区间。
%默认值为0.5,它是50%的错误椭圆。
% 'scale' -允许地块缩放到不同的单位。
% 'style' -用于格式化省略号的绘图样式。
%'剪辑' - 指定剪切半径。椭圆的部分, -
半径外的%将不会显示。
%
%注:C必须是正定的,这个函数才能工作
% 适当地。
AJ约翰逊(2021)。error_ellipse(//www.tatmou.com/matlabcentral/fileexchange/4705-error_ellipse), MATLAB中央文件交换。检索.
很棒的工作。如果你可以用它来计算椭圆的x-y坐标而不是作图的话会很方便。还可以输出半径信息。
今天我偶然发现了另一件小事,这是一个相当微妙的错误,但发生在一种典型的情况:
我试图导出包含绘制的样本数据的绘图,使用Scatter函数和使用HOLD ON + ERROR_ELLIPSE使用的错误椭圆形。
但是,导出到SVG文件格式导致质量非常差,我无法调整图的单个元素,因为我通常能够。
导出到任何其他文件格式或更改渲染器/分辨率/等。
在没有零散样本数据的情况下只绘制椭圆不会产生问题。
最后注释掉第137行(h1,'zdata',z+1)解决了这个问题。不知道为什么。我的猜测是情节可能变成3d,而渲染器无法处理。
任何其他解决方案吗?
工作很好。然而,文档是误导/不完整的。对于新版本,它似乎置信区间直接定义(即95%CI Put'.95)。从附加的文件似乎您必须指定“k”值。也是风格的一个例子很好。基本上与Plot命令相同,例如'k'。会给你一个黑色的虚线。
你好,AJ Johnson,谢谢你。我有这个错误......"不知道如何处理0x0矩阵" .....在我输入C, mu, scale, conf和clip的值之后。
@Matthias Y置信区间是不同的,取决于维数。对于二维数据,尝试将0.68更改为0.3934。(文档的第3页提供了一个有用的表格。)
在您的示例中,error_ellipse(covm,'conf',0.3934)应该生成一个半径等于标准差的圆(或者说是近圆)。
谢谢你帮我节省了时间,谢谢你,aj·约翰逊先生
非常感谢!
置信区间的绘制方式是否正确?
以2D为例。std-dev是不是每个轴从原点到椭圆最外层点的距离。如果我这样做:
样品= randn (200 2);
covm = x(样本);
ERROR_ELLIPSE(COVM,'CONF',0.68);
std_devx =√covm (1));
我的用于x轴的std-dev (std_devx)不知怎么的不匹配error_ellipse(可信度0.68%)。
作品,简单
完美的。节省了我阅读和编写代码的时间。
工作很好。谢谢你!
很好的代码。
谢谢你,学习真好
谢谢AJ!美味的BSD许可证:)
有人知道这份提交的许可证是什么?
qchisq的第二个参数应该不是自由度,而不是参数的数量吗?
这对学习卡尔曼滤波器很有帮助。
谢谢,很有用!
我有个关于k值的问题因为我对统计学不太熟悉为什么你从k平方分布而不是正态分布得到它?
真的很有帮助。但是不知道如何从conf中计算k值"k = sqrt(qchisq(conf,r))"有人知道这种关系是怎么维系的吗?谢谢. .
谢谢。节省了我很多时间。
非常有用,易于使用。
感谢conf. interval评论phil fox
哎呀,在上面的地区/音量计算中存在明显的错误。我忘记了定量的百分位数,即,您必须将面积/体积乘以所需置信区间(CONF)的大分。您可以使用来自ERROR_ELLIPSE的嵌入功能来计算PCONF(对于CONF = 0.5,PCONF(2D)= 1.1774 / PCONF(3D)= 1.5382)。面积(相应的体积)的惯例应该是:
面积= prod (sqrt (eig (C))) *π* Pconf
@Jenn危险&@ME:终于获得了面积/卷的解决方案。这一切都基于Covmatrix的特征值(Error_Ellipse的先决条件)。
面积(2 d): = prod(√6 (eig (C))) *π
卷(3D):卷= prod(Sqrt(eig(c)))* 4/3 * pi
希望有所帮助。干杯!
对我来说非常好,并节省了很多时间写作自己的代码。谢谢!
我目前正在进行面积/体积的计算。det(covMatrix)确实可以作为一种度量,但是,它不是实际的面积/体积。
珍风险:只使用det(CovMatrix)面积/体积。
M ChC, Volkan Ozturk:
图;处理(1)= error_ellipse(一个);抓住;处理(2)= error_ellipse (B);处理(3)= error_ellipse (C);集(处理(2)、“颜色”、“r”,“线型”,“:”);集(处理(3)、“颜色”、“k”,“线型”,“-”);
完美的代码!我经常用它。必须改变API,使其在绘图属性方面更灵活(例如,传递一个父轴句柄)。
???函数h = error_ellipse(varargin)
|
错误:提示或脚本中不允许函数定义。
我得到上面的错误,谁能帮助?我使用MATLAB 7.6.0(2008a)。谢谢
在光学上非常有用-但是它能计算误差椭圆的面积吗?我不容易让它适应这一点。任何帮助都很好!
抱歉,我之前的评论有一些错误:
- c = [1 -2;2;4)。这不是一个有效的协方差矩阵。
- "正半定对称(也就是说,它们可能在对角线外包含负值)。"这不是真的。
是真的,是C必须是正半定矩阵。但这只是一个次要的评论,因为实现允许这一点。
结论:
这个Matlab函数工作。谢谢!
%备注:C必须为此功能是正定的
%正常工作。
这是一个相当奇怪的限制,因为协方差矩阵是正半定对称的(也就是说,它们可能在对角线外包含负值)。例如,不可能想象以下非常简单和有效的协方差矩阵:C = [1 -2;2;4)。
有人是否知道一个能够可视化各种协方差矩阵(2D和3D)的MATLAB功能?谢谢!
功能工作很大,易于使用。谢谢你!
令人愉快的工具,易于使用,并立即工作
事完美无缺的工作。
改变颜色,在同一地块上有多个椭圆
要有多个省略号,只需在调用error_ellipse之前在命令窗口中键入'hold '。在属性编辑器中绘制完椭圆后,可以改变颜色(在视图>属性编辑器中打开pe)
这正是我所需要的!万岁。
我如何改变椭圆的颜色?
优秀,谢谢。
非常感谢!太好了!
非常有用的。谢谢你!
请注意,默认置信区间是0.5,而不是更多的标准值,如0.683,0.9等。使用'conf'参数进行更改。
我怎么能在同一个图形上看到两个图呢?我需要做一些比较。
问候
方便的
优秀的。
完美!工作伟大,易于使用。
很棒的代码,非常有用。救了我很多时间。
伟大的代码,谢谢。
你刚救了我一天,大部分头发:)
很神奇的。干得好!谢谢!
非常有用!
完美的工作!谢谢!
优秀的
完美的作品
它很棒
第117行没有错误。
难以置信地工作。
第117行出错了。读取行:XYZ = [X (:), Y (:), Z ()): * sqrt (eigval) * eigvec ';但应该是:XYZ = [X (:), Y (:), Z ()): * eigvec * sqrt (eigval) * eigvec ';
没有运行。我得到一个错误......
???未定义的命令/‘getopt函数。
Error in ==> error_ellipse at 61
道具= getopt(default_properties, varargin{:});
现在它工作得很好。
再次感谢!
U。
它不能在我的matlab平台(6.1)上工作。