【问题标题】:mathematica help ~ assign each element in a matrix to a value from a column vectormathematica 帮助 ~ 将矩阵中的每个元素分配给列向量中的值
【发布时间】:2014-03-07 18:27:43
【问题描述】:

我有这个 4x4 方阵 A,它在每个元素中都有一个随机值。我现在有一个列矩阵 (16x1) B,它也有随机值。 B中的值的数量为16,对应于A中的元素总数。

我正在尝试通过以下方式将 B 中的值分配给矩阵 A 中的元素:

A[[1,1]] = B[[1]],
A[[1,2]] = B[[2]],
A[[1,3]] = B[[3]],
A[[1,4]] = B[[4]],
A[[2,1]] = B[[5]],
A[[2,2]] = B[[6]],
A[[2,3]] = B[[7]],
A[[2,4]] = B[[8]],

等等……

有没有人知道这样做的方便方法,以便我可以为任何 NxN 方阵和任何长度 M 列矩阵(Mx1 矩阵)实现这一点?当然假设两个矩阵中的元素总数相同。

【问题讨论】:

  • 我猜“etc...”的意思是 p = Partition[B, 4];A = {p[[1]], p[[3]], p[[2] ], p[[4]]};但对于任意 N,我需要更多信息。
  • hmmm,所以我希望做的是让 B 中的第一个元素替换矩阵 A 中的元素 (1,1),其中第一个数字是行,第二个数字是列。我想对 B 中的每个元素都这样做。我希望能澄清事情。也感谢您的回复,因为您可能会说我是数学新手。
  • 刚接触 Mathematica 并不是对您的打击。但是有很多方法可以让我将 16 羽鸽子放入 16 洞,我不知道你的想法是什么。我在猜测,从你之前的例子……我写的可能是你想要的,现在我想也许我错了。也许您实际上正在寻找 A=Partition[B,Sqrt[Length[B]]] 试试看,看看它是否是您正在寻找的。请注意,Mathematica 保留并定义“N”以表示非常不同的含义,其他一些大写字母名称也是如此。请注意这一点,否则您会得到令人困惑的答案。
  • 成功了,你就是男人!!

标签: matrix wolfram-mathematica


【解决方案1】:

如果您有 Mathematica 9,函数 ArrayReshape 可以将您的列表 B 转换为任意 m x n 矩阵。

【讨论】:

    猜你喜欢
    • 2019-08-16
    • 1970-01-01
    • 2016-07-24
    • 2019-03-28
    • 2013-02-05
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多