covariance 相关问题

协方差,逆变和不变性描述了现有类型继承层次结构在经历某些转换(例如泛型中的使用)时如何变化。如果转换保持原始层次结构的顺序,则它是“协变的”。如果它反转它,它是“逆变的”。如果它打破它,它是“不变的”。

如何计算 R 中的条件方差 Var(Y2|Y1)

我确信这一定不难,但是对于我来说,我找不到 R 中的函数来做到这一点。 感谢所有帮助。

回答 1 投票 0

具有协变返回类型的 Kotlin 泛型扩展方法

如何为具有协变返回类型的方法的类型层次结构编写通用扩展方法。 例如,以下类型: 密封接口 MyInterface { 有趣的地图():MyInterf...

回答 1 投票 0

是否有一个带有索引器返回的协变类型参数的内置通用接口?

在此主题中 如何获取 null 而不是 KeyNotFoundException 通过键访问字典值? 在我自己的答案中,我使用显式接口实现来更改基本字典索引...

回答 2 投票 0

为什么协方差不适用于泛型方法

假设我有接口和类: 公共接口 ITree {} 公共类树:ITree {} 由于 IEnumerable 是协变的,因此下面的代码行编译成功: IE可枚举 假设我有接口和类: public interface ITree {} public class Tree : ITree {} 由于IEnumerable<T>是协变,所以下面的代码行编译成功: IEnumerable<ITree> trees = new List<Tree>(); 但是当我将它放入泛型方法中时: public void Do<T>() where T : ITree { IEnumerable<ITree> trees = new List<T>(); } 我从编译器中得到编译错误: 错误1无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.IEnumerable”。存在显式转换(是否缺少转换?) D:\lab\Lab.General\Lab.General\Program.cs 83 40 Lab.General 为什么协方差在这种情况下不起作用? 这是因为方差仅适用于引用类型(类、接口和委托)。添加一个类约束,它就可以正常编译了: public static void Do<T>() where T : class, ITree 我只是想添加更多示例: 您可以调用 MakeDesignWhereTIsReference 并将 VehicleStruct 传递为 T。但问题是: 引用类型支持协变和逆变,但值类型不支持它们。来自MS 文档 所以我们还需要限制T为引用类型;这可以借助 class 关键字来完成,该关键字添加了我们需要的限制。 public static class TestCovariance { public static void MakeDesignWhereTIsReference<T>() where T : class, IVehicle // pay attention to class restriction { ICollection<IDesign<IVehicle>> list = new List<IDesign<IVehicle>>(); var design = new Design<T>(); list.Add(design); } public static void MakeDesignWhereTIsStruct<T>() where T : struct, IVehicle //This method will throw a cast exception { ICollection<IDesign<IVehicle>> list = new List<IDesign<IVehicle>>(); var design = new Design<T>(); list.Add((IDesign<IVehicle>)design); } } public struct VehicleStruct : IVehicle { } TestCovariance.MakeDesignWhereTIsReference<Ship>(); TestCovariance.MakeDesignWhereTIsStruct<VehicleStruct>();

回答 2 投票 0

如何计算两个数据集、值列表之间的协方差?

将 numpy 导入为 np def cov(x,y): 如果 len(x) != len(y): 返回 a_mean = np.mean(x) b_mean = np.mean(y) 总和 = 0 对于范围内的 i(0, len(x)): 总和 += ((x[i] - a_mean)...

回答 1 投票 0

阐明在 MATLAB 中生成独立同分布高斯随机向量的过程

这可能是一个愚蠢的问题,我只是想仔细检查一下我对 MATLAB 中随机向量创建的理解。 我想使用高斯生成 100 个二维 iid 随机向量

回答 1 投票 0

为什么这是在给定协方差/相关问题中寻找联合概率的方法?

鉴于这个问题: 问题描述 解决这个问题的一部分需要找到联合概率: 联合概率 另外,作为参考,以下是边际概率: 边缘

回答 1 投票 0

在Python中计算大数组的协方差矩阵给出内存错误

我有一个形状为[128000,2]的数组,想用Python [Mac OS,8GB RAM,64位]计算它的协方差矩阵。我实际上有最多 10 列,但为了简单起见,只用 2 列进行测试。

回答 1 投票 0

为 lmer 函数 (lme4-Package) 找到 pdIdent (nlme-Package) 的等效项

我想知道是否可以使用函数 lme(nlme 包)和 pdIdent-line 将简单的混合模型分析“翻译”为 lmer(包

回答 1 投票 0

求高条件数矩阵的逆

我正在尝试找到这个 9x9 协方差矩阵的逆矩阵,这样我就可以将它与马哈拉诺比斯距离一起使用。然而,我从矩阵逆得到的结果是一个充满 1.02939420e+16 的矩阵。我有...

回答 4 投票 0

不变性、协变性和逆变性——有比喻吗?

首先我想说的是,我知道这个话题已经在 Stack Overflow 上进行了深入讨论。但我不认为给出的解释提供了有助于保留示例的强有力的故事......

回答 3 投票 0

xUnit Assert.Equivalent 在尝试使用协变返回类型测试抽象属性时抛出 System.ArgumentException

我正在使用 xUnit 2.6.3(最新稳定版本)来测试 .Net 8 项目。我有一个继承自抽象类的对象,并且我正在测试的方法具有基类的返回类型。底座...

回答 1 投票 0

混合 Kotlin 和 Scala 之间的协方差

我有一个 Kotlin 课程 类 Result(val 值:ResultType,val msg:字符串?) 我在 Scala 中使用它没有任何问题,直到我尝试写这样的东西 def 过程结果(...

回答 1 投票 0

类模板的协变返回类型无效

这可能是一个很长的阅读,提前抱歉。这是我一直在从事的个人编译器项目。采用 EBNF 语法并将其编译为自动构建的 C++、flex 和 bison 代码...

回答 1 投票 0

Swift 是否支持协议中的协方差返回类型?

我在这里发现协议中可以使用函数重写。显然,它可以覆盖签名,而不是实现。因此,如果它不是阴影,则仅对协方差有意义/

回答 0 投票 0

C#泛型逆变和协变的高级用法

在 Kotlin 中,您可以使用泛型来实现: 类 Foo { 有趣的托托(参数:酒吧){} 有趣的塔塔(arg:Baz){} } C# 中的等价物是什么? 我尝试复制...

回答 1 投票 0

如何在 PyTorch 中计算三个张量的批量协方差?

假设我们有 3 个大小为(B、C、H、W)的张量,其中 B 是批量大小,C 是通道维度。我期望计算这 3 个张量沿通道维度的协方差...

回答 1 投票 0

导致编译器或类型检查器(javac)中堆栈溢出的Java片段?

昨天在一个研讨会上,演讲者(Peter Sestoft)展示了一个小型 Java 程序,有 3 个类,具有协方差和逆变的特点。当尝试使用 javac 进行编译时,类型 ch...

回答 2 投票 0

手动实现协方差

今天我做了一个奇怪的观察 - 我用 3 种不同的方式实现了两个向量的协方差,并得到了 2 个不同的答案。在R中,方法1和2是相同的。方法3应该是数学的...

回答 1 投票 0

通用方差类型参数(Kotlin)

我不完全理解泛型中的方差是如何工作的。在下面的代码中,类如下 Any -> Mammals -> Cats。 Any 是超类型,有一个参数从副本中调用

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.