Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在MATLAB中标记某些元素的最佳方法是什么?使用NaN或Inf?或者是其他东西?

如您所知,在许多情况下,需要标记矩阵的某些元素。例如,当我们有加权的邻接矩阵,而我们的图没有完全连接时,我们必须标记一些元素以表明这些节点之间没有边。问题是该怎么做?将NaN或Inf放在矩阵中的元素上是否更好?还是其他(例如-1)?



回答:

这完全取决于情况。在该示例中,您给出了一个很好的解决方案,即可以使用 ,因为边缘是经过加权的,并且在许多情况下,权重为0的边缘等于没有边缘。如果您正在执行流/剪切算法之类的事情,那是真的。

通常,在NaN和Inf之间进行选择时,我会选择NaN 。 Inf具有一些您可能不喜欢作为“无效”标记的属性:

Inf*(-1) = -Inf Inf+(-Inf) = NaN Inf > 10 = True etc... 一个干净的解决方案可能是保存另一个布尔数组 ,该布尔数组在连接有效的地方为True,否则为False。它浪费了一点内存,但是除非您的矩阵很大,否则我认为它将为您提供的代码可读性是值得的。



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:00


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.