MATLAB:复制数组的特定部分

时间:2012-02-10 02:09:40

标签: matlab matrix

我试图从矩阵中复制一些元素,但不是整行,而不是单个元素。

例如,在以下矩阵中:

a = 1 2
    3 4
    5 6
    7 8
    9 0

我如何只复制以下数据?

b = 1
    3
    5

即。仅在第1列中的行1:3 ...我知道您可以删除整个列,如下所示:

b = a(:,1)

...我很欣赏可以这样做,然后转储最后两行,但我想使用更简化的代码,因为我正在运行一个资源密集型的解决方案。

2 个答案:

答案 0 :(得分:5)

MATLAB中矩阵中的元素以列主顺序存储。这意味着,您甚至可以使用单个索引并说:

b = a(1:3);

由于前3个元素是1,3,5。类似地,a(6)是2,a(7)是4等。查看sub2ind方法以了解更多:

http://www.mathworks.com/help/techdoc/ref/sub2ind.html

答案 1 :(得分:1)

您没有“删除”第二列,而是引用另一列。

您应该阅读一些Matlab文档,它们提供了一些有关访问矩阵部分语法的帮助:

http://www.mathworks.com/help/techdoc/learn_matlab/f2-12841.html#f2-428