如何在Matlab / Octave中访问单个矩阵元素?

5
假设我有以下内容:
>> X = magic(5)
X =

   17   24    1    8   15
   23    5    7   14   16
    4    6   13   20   22
   10   12   19   21    3
   11   18   25    2    9

如何从第二列获取第i个元素?

我已经知道Octave中(某些?)集合的索引是基于1的,但我不确定矩阵是否也是这样。

1个回答

16

请参阅手册中的索引表达式部分。要从第二列获取第i个元素:

X(i,2)      # element 'i' from column 2
X(1:end,2)  # the whole 2nd column
X(:,2)      # same thing but shorter
x(:, [2 3]) # whole 2nd and 3rd column

请注意,Octave是一种语言,其中数组元素是按列主序排列的column-major order


@wvxvw 空格无关紧要。可以将索引视为向函数传递参数,其中每个参数都是矩阵。[2 3] 是一个向量,1:5 也是一个向量(范围),1:end 也仅仅是一个范围,它将 end 解释为最后一个。你可以使用 1:2:end 表示每两个取一个,就像使用简单范围一样。 - carandraug
@wvxvw 试一下吧。你已经安装了Octave。它返回相同的结果吗? - carandraug
@wvxvw 这是意图之中的。在Octave中,: 只用于范围选择和选择整行和列,没有区别。至于昵称,当评论我的答案时,我会自动收到通知,不需要特别提醒。 - carandraug

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接