有没有办法在 Octave 中创建一个矩阵,其中每个元素都等于前一个元素 +10

Is there a way to create a matrix in Octave with every element equal the previous one +10

提问人:Lwelly Ebah 提问时间:11/18/2023 最后编辑:Heretic MonkeyLwelly Ebah 更新时间:11/18/2023 访问量:26

问:

我正在尝试创建这个矩阵,该矩阵的行中的每个元素都等于前一个元素 + 10 和列 + 1 例:

 [ 1.  11.  21
   2.  12.  22
   3   13.  23
 ]

我刚刚完成了课程,这是在练习中,我不知道该怎么做。

数学 矩阵 八度

评论

0赞 Fredy 11/18/2023
你有没有探索过这个问题:octave.org

答:

0赞 Nick J 11/18/2023 #1

您显示的示例矩阵可以使用广播操作来制作,其中包含包含结果的方向分量的单个数组。在水平方向上,数字增加 10(从零 10 开始)。在垂直方向上,它们增加 1(从一个 1 开始)。

因此,在最简单的情况下,我们可以:

[0, 10, 20] + [1;2;3]
ans =

    1   11   21
    2   12   22
    3   13   23

(请注意,分隔列元素和 ;分隔行元素)

现在,对于较大的数组,您还可以使用索引表示法来创建这些数组:

[0:10:40] + [1:4]'
ans =

    1   11   21   31   41
    2   12   22   32   42
    3   13   23   33   43
    4   14   24   34   44

请注意,将行向量转置为列向量。'

最后,您可以使用任意大小的变量:

 n = 4, 10*[0:n] + [1:n]'
n = 4
ans =

    1   11   21   31   41
    2   12   22   32   42
    3   13   23   33   43
    4   14   24   34   44

评论

1赞 Cris Luengo 11/18/2023
[…]是串联运算符,你不需要它。使用括号更改操作顺序被认为更简洁:。(0:10:40) + (1:4).'
0赞 Nick J 11/20/2023
没错,但为了保持示例之间的连续性,需要解释的符号更改少了一个。