图片缩略图

error_ellipse

版本1.0.0.0 (11kb) AJ Johnson.
绘制一个误差椭圆描绘置信区间给定的协方差矩阵。
4.9
64年评级

42下载

更新2015年7月23日

查看许可协议

% 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中央文件交换。检索

评论和评级(83.

金龙玉

杜米尼克Mattioli

很棒的工作。如果你可以用它来计算椭圆的x-y坐标而不是作图的话会很方便。还可以输出半径信息。

马蒂亚斯将会

今天我偶然发现了另一件小事,这是一个相当微妙的错误,但发生在一种典型的情况:

我试图导出包含绘制的样本数据的绘图,使用Scatter函数和使用HOLD ON + ERROR_ELLIPSE使用的错误椭圆形。
但是,导出到SVG文件格式导致质量非常差,我无法调整图的单个元素,因为我通常能够。
导出到任何其他文件格式或更改渲染器/分辨率/等。
在没有零散样本数据的情况下只绘制椭圆不会产生问题。

最后注释掉第137行(h1,'zdata',z+1)解决了这个问题。不知道为什么。我的猜测是情节可能变成3d,而渲染器无法处理。
任何其他解决方案吗?

马蒂亚斯将会

工作很好。然而,文档是误导/不完整的。对于新版本,它似乎置信区间直接定义(即95%CI Put'.95)。从附加的文件似乎您必须指定“k”值。也是风格的一个例子很好。基本上与Plot命令相同,例如'k'。会给你一个黑色的虚线。

Niyi Ishola.

你好,AJ Johnson,谢谢你。我有这个错误......"不知道如何处理0x0矩阵" .....在我输入C, mu, scale, conf和clip的值之后。

Zhenghaao他

Nicholas Labarbera.

阿沙玛

拉里

安东尼·维拉拉

@Matthias Y置信区间是不同的,取决于维数。对于二维数据,尝试将0.68更改为0.3934。(文档的第3页提供了一个有用的表格。)

在您的示例中,error_ellipse(covm,'conf',0.3934)应该生成一个半径等于标准差的圆(或者说是近圆)。

穆罕默德胺Harkane

谢谢你帮我节省了时间,谢谢你,aj·约翰逊先生

唐纳德通

LIGANG太阳

非常感谢!

马提亚Y

置信区间的绘制方式是否正确?
以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%)。

法拉宾

Ancil马歇尔

Arnau弗兰

作品,简单

齐A.

完美的。节省了我阅读和编写代码的时间。

迈克尔Zweimuller

工作很好。谢谢你!

M.B.

很好的代码。

Aurican.

柯静

谢谢你,学习真好

alceu哥斯达

ahmed fasih.

谢谢AJ!美味的BSD许可证:)

ahmed fasih.

有人知道这份提交的许可证是什么?

乔纳森·柯里

qchisq的第二个参数应该不是自由度,而不是参数的数量吗?

彼得·法卡斯

这对学习卡尔曼滤波器很有帮助。

塞丽娜

谢谢,很有用!
我有个关于k值的问题因为我对统计学不太熟悉为什么你从k平方分布而不是正态分布得到它?

基督教

查尔斯Nelatury

Burcu

真的很有帮助。但是不知道如何从conf中计算k值"k = sqrt(qchisq(conf,r))"有人知道这种关系是怎么维系的吗?谢谢. .

穆罕默德Ehsanul

谢谢。节省了我很多时间。

佐藤

安东尼

非常有用,易于使用。

枪bay1r

感谢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)确实可以作为一种度量,但是,它不是实际的面积/体积。

琐Bar-Yehuda

ahmed fasih.

珍风险:只使用det(CovMatrix)面积/体积。

M ChC, Volkan Ozturk:
图;处理(1)= error_ellipse(一个);抓住;处理(2)= error_ellipse (B);处理(3)= error_ellipse (C);集(处理(2)、“颜色”、“r”,“线型”,“:”);集(处理(3)、“颜色”、“k”,“线型”,“-”);

马塞尔

完美的代码!我经常用它。必须改变API,使其在绘图属性方面更灵活(例如,传递一个父轴句柄)。

IPSita.

???函数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功能?谢谢!

珍珠

本杰明Pavie

米格尔托雷斯

诺拉

约翰

功能工作很大,易于使用。谢谢你!

丹铁锹

令人愉快的工具,易于使用,并立即工作

刘易斯

事完美无缺的工作。

亚历克斯Yakubovich

改变颜色,在同一地块上有多个椭圆

要有多个省略号,只需在调用error_ellipse之前在命令窗口中键入'hold '。在属性编辑器中绘制完椭圆后,可以改变颜色(在视图>属性编辑器中打开pe)

亚当Attarian

这正是我所需要的!万岁。

M ChC

我如何改变椭圆的颜色?

达格玛Schoch

特雷弗伍德

优秀,谢谢。

Siladitya戴伊

马里诺异教

非常感谢!太好了!

马修·纳尔逊

非常有用的。谢谢你!

菲尔福克斯

请注意,默认置信区间是0.5,而不是更多的标准值,如0.683,0.9等。使用'conf'参数进行更改。

Volkan Ozturk

我怎么能在同一个图形上看到两个图呢?我需要做一些比较。

问候

凯文陈

方便的

冯米

优秀的。

Mohan Palani.

Sujai库马尔

约翰Magirk

完美!工作伟大,易于使用。

克里斯·威利

很棒的代码,非常有用。救了我很多时间。

亚特·艾文

伟大的代码,谢谢。

Damien Dusha

你刚救了我一天,大部分头发:)

Valentin Kuklin

很神奇的。干得好!谢谢!

米人

非常有用!

瑞安jessup

完美的工作!谢谢!

oxana govokhina

优秀的

Laurent Nguyen.

完美的作品

Juan Pablo Nieto.

它很棒

保罗汤普森

第117行没有错误。

Kamini Singha.

难以置信地工作。

Niklaus Hugi

戈登•德莱顿

第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{:});

Una Kusan.

现在它工作得很好。
再次感谢!
U。

Una Kusan.

它不能在我的matlab平台(6.1)上工作。

MATLAB版本兼容性
使用R12.1创建
兼容任何释放
平台的兼容性
窗户 macOS Linux

社区宝藏狩猎

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!