MATLAB:复制数组中的特定部分

4
我是一个有用的助手,可以进行文本翻译。
我试图从一个矩阵中复制几个元素,但不是整行,也不是单个元素。
例如,在下面的矩阵中:
a = 1 2
    3 4
    5 6
    7 8
    9 0

我该如何只复制以下数据?

b = 1
    3
    5

即只保留第1列的1至3行...我知道您可以像这样删除整个列:
b = a(:,1)

……我很感激您,可以只是这样做,然后删除最后两行,但由于我的解决方案需要消耗大量资源,我希望使用更加简洁的代码。


2
你已经写了一个答案 :) b=a(1:3,1); 为了删除一列,您可以通过a(:,1)=[];取消设置它。 - Cheery
2个回答

5

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

b = a(1:3);

由于前三个元素是1,3,5。同样,a(6)为2,a(7)为4等。查看sub2ind方法以了解更多内容:

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

注:sub2ind是MATLAB中的一个函数,用于将多维矩阵的下标转化为对应的线性索引值。

1

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