matlab中,X2:2:10) = []是什么意思?

如题所述

整句话的大致意思就是删除矩阵的某些元素,并把剩下的元素重新整合为一个向量。具体删哪些元素得看括号里的。

这也涉及到单下标索引。比如A是一个4*4的矩阵,那么A(8)指的是A(4,2)。那么题主的X(2:2:10)的括号里就是指从第二个到第十个、每两个删一个。。。。

就会变成

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-20

你的提问涉及到两个问题:

 

1、数组的单下标索引。

对于MATLAB中任意维数的数组,都可以使用单个下标对数组元素进行索引,有点类似于C语言中的指针。但需要注意的是,MATLAB的数组是以列序为主序的,这一点和C语言不同。也就是说,MATLAB中A(2)、A(3)表示的是A(2,1)、A(3,1),而不是A(1,2)、A(1,3)。

 

2、对数组的部分元素赋值为空数组可以删除该部分元素。

需要注意,以单下标索引的方式删除元素,由于处理后不一定能满足矩阵的要求,所以得到的结果是一维数组。

 

就题主的例子而言,贴出的结果是错误的:

>> X =[16  3    2   13   0;5 10 11  8    0;9 6 7 12   0;4 15 14   1   17]
X =
    16     3     2    13     0
     5    10    11     8     0
     9     6     7    12     0
     4    15    14     1    17
>> X(2:2:10)=[]
X =
    16     9     3     6     2     7    14    13     8    12     1     0     0     0    17

 显然与题主贴出的结果不一致。

本回答被网友采纳
第2个回答  2016-09-19
矩阵的第一列分别为2,4,6,8,10追问

后面有个空矩阵啊,应该是表示删除的意思。它原矩阵是
X =

16 3 2 13 0

5  10 11 8 0

9  6  7 12 0

4  15 14 1 17
X(2:2:10)
= [] %单下标可以删除某元素

results in

X =

16 9 2 7 13 12 1
怎么算出来的?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网