当前位置: 首页 > 知识库问答 >
问题:

如何在R中对矩阵的相关列表进行矩阵计算

冀嘉木
2023-03-14

我有两个列表,每个列表中有两个矩阵。。是否有一种方法可以对它们进行矩阵计算,即相加,其中matrix1中的蓝色矩阵与matrix2中的蓝色矩阵相加,matrix1中的红色矩阵与matrix2中的红色矩阵相加。我能想到的唯一方法是在循环中进行计算

> mymatrix1
$blue
     [,1] [,2] [,3] [,4] [,5]
[1,]   10    1    2   13    1
[2,]    2   10   11   13   13
[3,]    3   14    1   15    9
[4,]    7   15   10    5    3
[5,]   12    8   11    3   13

$red
     [,1] [,2] [,3] [,4] [,5]
[1,]    4    9   14    7   10
[2,]   15    9    7   13   13
[3,]    8    8    9    6    6
[4,]    8   13   15    1    7
[5,]   12   13   10   14    2


> mymatrix2
$blue
     [,1] [,2] [,3] [,4] [,5]
[1,]   20    2    4   26    2
[2,]    4   20   22   26   26
[3,]    6   28    2   30   18
[4,]   14   30   20   10    6
[5,]   24   16   22    6   26

$red
     [,1] [,2] [,3] [,4] [,5]
[1,]   12   27   42   21   30
[2,]   45   27   21   39   39
[3,]   24   24   27   18   18
[4,]   24   39   45    3   21
[5,]   36   39   30   42    6

请注意,我将有大约10个,以及不止一组(即蓝色、红色、绿色、紫色)

共有1个答案

杜志
2023-03-14

更新2:对于两个以上的列表:

mL1 <- list(
  blue = matrix(1:25,nrow=5),
  red = matrix(2*(1:25),nrow=5),
  green = matrix(3*(1:25),nrow=5),
  orange = matrix(4*(1:25),nrow=5)
)
mL2 <- mL1
mL3 <- mL1
##
Reduce(function(x,y){
    Map('+',x,y)
  },
  list(mL1,mL2,mL3),
  accumulate=F
)
$blue
     [,1] [,2] [,3] [,4] [,5]
[1,]    3   18   33   48   63
[2,]    6   21   36   51   66
[3,]    9   24   39   54   69
[4,]   12   27   42   57   72
[5,]   15   30   45   60   75

$red
     [,1] [,2] [,3] [,4] [,5]
[1,]    6   36   66   96  126
[2,]   12   42   72  102  132
[3,]   18   48   78  108  138
[4,]   24   54   84  114  144
[5,]   30   60   90  120  150

$green
     [,1] [,2] [,3] [,4] [,5]
[1,]    9   54   99  144  189
[2,]   18   63  108  153  198
[3,]   27   72  117  162  207
[4,]   36   81  126  171  216
[5,]   45   90  135  180  225

$orange
     [,1] [,2] [,3] [,4] [,5]
[1,]   12   72  132  192  252
[2,]   24   84  144  204  264
[3,]   36   96  156  216  276
[4,]   48  108  168  228  288
[5,]   60  120  180  240  300
 类似资料:
  • 我有一个矩阵。只有唯一的颜色以不同的权重重复它们自己。从它们中,我得选择一半,另一半必须用从第一个中最接近的元素替换。 我想到了在图像中循环,并搜索最近的颜色为当前的一个。找到后,我把一个换成另一个。 但我有3个循环、、。前两个I循环通过RGB矩阵,第三个用于循环到包含最终颜色的矩阵。这需要一些时间来计算。 可以做些什么来加快它的速度? 循环如下所示: 表示选择为最终颜色的半色。 我可以考虑一些小

  • 主要内容:语法,例子,访问矩阵的元素,矩阵计算矩阵是其中元素以二维矩形布局排列的R对象。它们包含相同原子类型的元素。 虽然我们可以创建一个仅包含字符或仅包含逻辑值的矩阵,但它们没有太多用处。 我们使用包含数学元素的矩阵来在数学计算中使用。 矩阵可通过使用函数来创建。 语法 在R中创建矩阵的基本语法是 - 以下是使用的参数的描述 - data - 是将要转为矩阵元素的输入向量。 nrow - 是要创建的行数。 ncol - 是要创建的列数。 b

  • 本文向大家介绍如何在R中合并具有相同列数的矩阵?,包括了如何在R中合并具有相同列数的矩阵?的使用技巧和注意事项,需要的朋友参考一下 列数相同的矩阵可以按行合并。例如,如果我们有五个矩阵列表,每个矩阵都有六列,则可以通过合并这些矩阵的行将这些矩阵转换为单个矩阵。可以使用do.call(rbind,“ List_of_matrices_object_name”)来完成。 示例 请看以下矩阵及其列表-

  • 如何计算大的皮尔逊互相关矩阵( 更新:我读了阿帕奇火花的实现 但对我来说,看起来所有的计算都发生在一个节点上,而不是真正意义上的分布式。 请在这里放一些光。我还尝试在3节点火花群集上执行它,下面是屏幕截图: 正如您从第二张图中看到的,数据在一个节点上被拉起,然后进行计算。我在这里对吗?

  • 本文向大家介绍python如何进行矩阵运算,包括了python如何进行矩阵运算的使用技巧和注意事项,需要的朋友参考一下 python进行矩阵运算的方法: 1、矩阵相乘 2、矩阵对应元素相乘 multiply()函数:数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致 3、矩阵点乘 4、矩阵求逆 5、矩阵转置 6、计算每一列、行的和 内容扩展: numpy矩阵运算 (1) 矩阵点乘:m=mult

  • 本文向大家介绍如何在R中将矩阵列转换为向量列表?,包括了如何在R中将矩阵列转换为向量列表?的使用技巧和注意事项,需要的朋友参考一下 如果要使用矩阵的列作为向量,则可以将它们转换为向量列表。要将矩阵列转换为向量列表,我们首先需要将矩阵转换为数据框,然后才能将其读取为列表。这可以作为as.list(as.data.frame(matrix_name))完成。 示例 考虑下面的矩阵- 将矩阵M列转换为向