【问题标题】:Matrix algebra in RR中的矩阵代数
【发布时间】:2014-03-26 23:30:08
【问题描述】:

我有: x= 1 x 999 布朗运动矢量 y= 1 x 999 布朗运动矢量 (我可以很容易地模拟这些)

我想设置一个名为 z 的 1000x1000 矩阵,如下所示: - 第一行和第一列将充满零 - 每个其他元素将是 x 和 y 的乘积,即 z 的第二列的第二行将是 x[1]*y[1] 等,直到第 1000 列的第 1000 行将是 x[999]* y[999] (再举一个例子,第 4 列的第 3 行将是 x[3]*y[4]

我该怎么做呢?

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    你正在寻找outer:

    x <- 1:3
    y <- 2:4
    cbind(0, rbind(0, outer(x, y)))
    #      [,1] [,2] [,3] [,4]
    # [1,]    0    0    0    0
    # [2,]    0    2    3    4
    # [3,]    0    4    6    8
    # [4,]    0    6    9   12
    

    如果您想为每对 xy 值绘制 z,您可能会发现使用绘制更方便

    to.plot <- expand.grid(x=c(0, x), y=c(0, y))
    to.plot$z = to.plot$x * to.plot$y
    to.plot
    #    x y  z
    # 1  0 0  0
    # 2  1 0  0
    # 3  2 0  0
    # 4  3 0  0
    # 5  0 2  0
    # 6  1 2  2
    # 7  2 2  4
    # 8  3 2  6
    # 9  0 3  0
    # 10 1 3  3
    # 11 2 3  6
    # 12 3 3  9
    # 13 0 4  0
    # 14 1 4  4
    # 15 2 4  8
    # 16 3 4 12
    

    然后你可以用类似的东西来绘制:

    library(scatterplot3d)
    scatterplot3d(to.plot$x, to.plot$y, to.plot$z)
    

    【讨论】:

    • 谢谢乔西伯!如果我以这种方式生成我的 z 矩阵,是否可以将一个格子与 z 矩阵相关联以用于绘图目的,即将 z 条目作为 z 轴,然后 y 和 x 轴是点格?
    • 我发现outer(c(0, x), c(0, y)) 更容易理解。你甚至可以c(0, x) %o% c(0, y)
    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 2021-05-24
    • 2016-08-30
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 2012-06-08
    • 2012-08-13
    相关资源
    最近更新 更多