如何从两个或多个矩阵的所有可能组合创建一个矩阵?

2024-02-08

假设有两个矩阵:

A <- B <- diag(3)  
> A
     [,1] [,2] [,3]
[1,]    1    0    0
[2,]    0    1    0
[3,]    0    0    1

我想创建一个新的矩阵AB,它由A和B行的所有可能组合组成。预期结果:

> AB
      [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    1    0    0    1    0    0
 [2,]    1    0    0    0    1    0
 [3,]    1    0    0    0    0    1
 [4,]    0    1    0    1    0    0
 [5,]    0    1    0    0    1    0
 [6,]    0    1    0    0    0    1
 [7,]    0    0    1    1    0    0
 [8,]    0    0    1    0    1    0
 [9,]    0    0    1    0    0    1

如何有效地做到这一点?它可以扩展到两个以上的矩阵吗?


您可以使用expand.grid()并用其输出来索引矩阵 A 和 B,

x <- expand.grid(1:3,1:3)

cbind(A[x[,1],], B[x[,2],])

gives,

     [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    1    0    0    1    0    0
 [2,]    0    1    0    0    1    0
 [3,]    0    0    1    0    0    1
 [4,]    1    0    0    1    0    0
 [5,]    0    1    0    0    1    0
 [6,]    0    0    1    0    0    1
 [7,]    1    0    0    1    0    0
 [8,]    0    1    0    0    1    0
 [9,]    0    0    1    0    0    1

EDIT:

对于两个以上的矩阵,您可以使用如下函数,

myfun <- function(...) {

     arguments <- list(...)

     a <- expand.grid(lapply(arguments, function(x) 1:nrow(x)))
    
    
     do.call(cbind,lapply(seq(a),function(x) { arguments[[x]][a[,x],] }))

 
}

out <- myfun(A,B,C)

head(out)

gives,

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1    0    0    1    0    0    1    0    0     0
[2,]    0    1    0    1    0    0    1    0    0     0
[3,]    0    0    1    1    0    0    1    0    0     0
[4,]    1    0    0    0    1    0    1    0    0     0
[5,]    0    1    0    0    1    0    1    0    0     0
[6,]    0    0    1    0    1    0    1    0    0     0

Data:

A <- B <- diag(3)
C <- diag(4)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从两个或多个矩阵的所有可能组合创建一个矩阵? 的相关文章

  • 如何确定 R 包的作者?

    如何确定包的作者是谁 鉴于我们拥有这个广泛使用的代码库 我认为参考我在分析中使用的软件是合适的 有没有办法以编程方式检索作者和任何其他相关信息 在伪代码中 我想执行以下操作 references base 我怎样才能做到这一点 为了能够引用
  • PostgreSQL 在递归查询中找到所有可能的组合(排列)

    输入是一个长度为 n 的数组 我需要生成数组元素的所有可能组合 包括输入数组中元素较少的所有组合 IN j A B C OUT k A AB AC ABC ACB B BA BC BAC BCA 随着重复 所以AB BA 我尝试过这样的事情
  • R 多元一步预测和准确性

    我想使用 R 来比较两个预测模型的 RMSE 均方根误差 第一个模型使用 1966 年至 2000 年的估计值来预测 2001 年 然后使用 1966 年至 2001 年的估计值来预测 2002 年 依此类推直至 2015 年 第二个模型使
  • 使用 ggplot 构面时增加闪亮的绘图大小

    有没有办法增加绘图窗口的大小shiny取决于在一个中使用的面的数量ggplot图 也许使用垂直滚动 例如 使用下面的示例 当输入为 A 有三个方面 情节看起来不错 当选项 B 选择绘图数量会增加 但绘图窗口保持相同大小 导致绘图太小 是否有
  • R 编程常用工具

    如果已经以不同的方式问过这个问题 我深表歉意 但我找不到任何达到我想要的东西 我真的是从其他软件包 SPSS 开始接触 R 的 当我了解真正可以做什么时 我意识到我还需要其他 工具 这让我想到了我的问题 您有哪些用于开发 R 代码的设置 我
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 不同 R/lme4 版本的单一拟合结果不匹配

    我试图将 R 版本 3 5 3 lme4 1 1 18 1 的随机效应估计与 R 版本 4 1 1 lme4 1 1 27 1 相匹配 然而 当存在奇异拟合时 这两个版本之间的随机效应存在微小差异 我对奇点警告很满意 但令人费解的是不同版本
  • 从 df 中提取具有两列的重叠行对

    我想找出这两个表之间哪些对重叠 gt dput data1 structure list Name x c MDH1 MDH1 IDH2 IDH2 IDH2 IDH2 IDH2 IDH2 IDH2 SCOALB SCOALB CSY4 CS
  • 用表达式分割轴标签

    我有一个带有包含表达式的长标签的图 我想将其分成两行 在表达式中添加 n 结果不符合预期 ylabel lt expression A very long label with text and n expression alpha bet
  • ubuntu中R的igraph包的安装

    我使用以下命令在 ubuntu 中安装 R 的 igraph 包 install packages igraph 但我收到一条错误消息 警告 无法访问存储库的索引 http ftp iitm ac in cran src contrib h
  • 对 data.table 中的列表列执行操作

    假设我有一个data table 例如dt lt data table foo list 1 3 4 6 bar c 2 7 如何使用 dt 框架对 foo 向量列表执行操作 操作可能是将 bar 添加到 foo 返回列表 3 5 11 1
  • 融化R中的下半矩阵

    如何融化下半三角形加对角矩阵 11 NA NA NA NA 12 22 NA NA NA 13 23 33 NA NA 14 24 34 44 NA 15 25 35 45 55 A lt t matrix c 11 NA NA NA NA
  • R 中按时间划分的平均值

    我每秒测量一次化合物浓度 我想求 30 秒和 60 秒的平均值 我一直在阅读这里的帖子 我尝试过lubridate and dplyr 但没有运气 我正在努力完成这项工作 但我一直没能做到 我正在从 SAS 过渡到 R 所以请耐心等待 这是
  • R 将多个值与向量进行比较并返回向量[重复]

    这个问题在这里已经有答案了 我有一个向量 A 对于 A 的每个元素 我想检查它是否等于第二个向量 Targets 中的任何元素 我想要一个逻辑值向量 其长度为 A 作为返回 也提到了同样的问题here http r 789695 n4 na
  • 将第 N 行上的 NA 行插入 data.frames 列表,其中 N 来自列表

    经过几个小时后 我发现自己无法解决以下问题 我有一个数据框列表 我想分别向每个 DF 插入 而不是替换 一行或多行 NA 始终至少一行 要插入的 NA 数量存储在单独的列表中 为了说明这一点 我有以下两个列表 list of datafra
  • R中的字典数据结构

    在 R 中 我有 例如 gt foo lt list a 1 b 2 c 3 如果我输入foo I get a 1 1 b 1 2 c 1 3 我怎样才能看透foo仅获取 键 列表 在这种情况下 a b c R 列表可以具有命名元素 因此可
  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • R中的重叠矩阵

    我有以下数据框 id channel 1 a 1 b 1 c 2 a 2 c 3 a 我想创建并重叠矩阵 它基本上是一个方阵 行和列标签为 a b c 表中的每个条目显示每个通道共有多少个 id 例如 在上面的例子中 矩阵看起来像 a b
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我

随机推荐

  • jQuery UI 对话框(模态),防止任何回发

    如何在 jQuery UI 对话框中进行 ASP NET 提交按钮回发 实际上 我正在使用 UI 对话框模式 就像我们使用 Ajax 控件工具包的模式所做的那样 来更新存储在 gridview 控件中的数据值 我可以做所有事情 但无法使用
  • BLE 参数协商如何工作?

    我想知道当 中央 和 外围 设置不同的参数时 参数协商如何工作 我可能是错的 但根据我的理解 外围设备在连接时会发出更新请求 以设置连接的参数 然后中央决定是否批准 我不明白的是如何决定这些参数是否获得批准 而且我还没有找到任何代码 例如
  • PowerShell - 为加载的程序集设置别名

    我使用这段代码来加载 Net汇编到 PowerShell System Reflection Assembly Load System Windows Forms Version 2 0 0 0 Culture neutral Public
  • 向 Python Swig 模板类添加新方法

    我需要向我的 swig 模板类添加一个新方法 例如 我在 myswig i 中声明一个模板类 如下所示 template DoubleVector vector
  • 无法滚动到溢出容器的弹性项目的顶部

    在尝试使用 Flexbox 制作有用的模式时 我发现似乎是浏览器问题 并且想知道是否有已知的修复或解决方法 或者关于如何解决它的想法 我试图解决的问题有两个方面 首先 使模态窗口垂直居中 这按预期工作 第二个是让模态窗口在外部滚动 因此整个
  • 如何更改 QTabWidget 中的文本对齐方式?

    我找不到在 QTabWidget 中设置文本对齐方式的方法 创建此小部件的实例后 我设置了其选项卡位置属性为西方 但我希望它水平显示文本 标签 我已经看过 Qt 的了样式表 https doc qt io qt 4 8 stylesheet
  • 在 VS Code 中创建自定义 HTML 片段

    我正在远离织梦者 我知道它很糟糕 但它有它的用处 用于 VS Code 的电子邮件开发 Dreamweaver 提供的一项方便的功能是使用自定义片段 VS Code 优惠自定义片段 https code visualstudio com d
  • Spring 的 ThreadPoolTask​​Executor 的默认队列大小是多少?

    我正在使用 Spring 4 3 8 RELEASE 和 Java 7 我想创建一个线程池来执行任务 所以我在 Spring contxet 中设置了以下内容
  • 如何获取子进程的退出状态?

    两个示例输出 由我的教授提供 是 这些在 Linux 终端中输入 ibrahim ibrahim latech prog2 Current working directory home ibrahim Executing ls all l
  • 使用 React 路由器以编程方式导航

    With react router我可以使用Link元素来创建由反应路由器本机处理的链接 我看到它内部调用this context transitionTo 我想做一个导航 不是来自链接 而是来自下拉选择 作为示例 我怎样才能在代码中做到这
  • usql 应用程序和脚本的单元测试

    我有一个自定义的 USql 应用程序 它扩展了IApplier class SqlUserDefinedApplier public class CsvApplier IApplier public CsvApplier totalcoun
  • 使用 Safari/Chrome 卸载时的 Ajax(或 JSONP)

    如果您尝试发送 Ajax 请求 JSONP 请求 甚至卸载时的 window name 请求 Safari 和 Chrome 会运行代码 但服务器永远看不到该请求 我的理论是执行线程在更改页面之前决不允许脚本标记运行 这是一个带有 JSON
  • 如何在javascript中获取托管bean属性值[重复]

    这个问题在这里已经有答案了 谁能告诉我如何在 javascript 方法中获取托管 bean 属性值 就像是 function fonction1 var variable myBean property 你可以喜欢这样
  • 如何在已加载的页面上生成并显示 TCPDF pdf?

    我正在尝试使用 TCPDF 即时生成 PDF 并将其显示在浏览器中 我已经 将 PDF 输出为下载文件 内联输出 PDF 无需任何 HTML 使用 pdf gt Output example 007 pdf I 我想做的是 输出内嵌已打印
  • 为什么 2 的补码符号扩展通过添加符号位的副本来工作?

    我们以将 16 位有符号数符号扩展为 32 位寄存器为例 例如mov 5 ax movswl ax ebx 有两种可能的情况 高位为零 数字为正 这是非常容易理解和直观的 例如 如果我有号码5 左填充零非常容易理解 例如 00000000
  • 闪亮的r:来自上传数据的数字输入

    我刚刚开始使用闪亮并得到以下结果basic问题 1 上传的纵向数据包括治疗名称一栏 如A B C D 另一栏包括相应的数字代码 如1 2 4 6 根据上传的数据 编码可能会有所不同 每种治疗均针对一组患者进行 我想使用数字代码来选择要比较的
  • 组合来自不同 SOAP 方法的循环值

    我从不同的 SOAP 方法获取数据 举个例子 wsdl the url of wsdl client new SoapClient wsdl parameters array all the parameters inside values
  • 使用 Jasmine 或任何其他替代方案在 Node 上运行测试 .mjs / ESM

    我的基于 Node 的项目是使用 Node 上的原生 ES 模块支持来实现的 这要归功于 experimental modulesCLI 开关 即node experimental modules 显然 当我使用 Jasmine 运行规范时
  • C# 中的闭包分配

    我已经安装了 Clr 堆分配分析器扩展 在一个项目中我看到了一些我完全不理解的东西 我有一个带有签名的方法 public Task
  • 如何从两个或多个矩阵的所有可能组合创建一个矩阵?

    假设有两个矩阵 A lt B lt diag 3 gt A 1 2 3 1 1 0 0 2 0 1 0 3 0 0 1 我想创建一个新的矩阵AB 它由A和B行的所有可能组合组成 预期结果 gt AB 1 2 3 4 5 6 1 1 0 0