matlab删除矩阵指定行

一个4阶矩阵删除他的第三行和第一行,并且输出

c(1:2:3,:)=[]      {明明有123都有,为啥保留了第二行}

我不理解为啥是这么删除的

我尝试过将代码写成

c(1:3,:)=[]

运行之后为这个矩阵直接删除了第一行到第三行

我尝试用五阶矩阵去验证,发现

f(2:4:5,:)=[] 删除的是第一行                    {没有13,却只减少了第一行}
f(1:2:4,:)=[] 删除的是第一行和第三行      {没有35,却减少了第一行和第三行}
f(1:3:4,:)=[] 删除的是第一行和第四行      {没有25,却减少了第一行和第四行}

我想问一下这个删除的规律是啥,当我要删除隔一行删除一个矩阵时怎么用这个

这个你可以先尝试了解下矩阵的任意行提取。你的第一个写法里面其实是按照指定步长来提取行数,1:2:3是从第一行起每两行计数一次直到第三行,所以是第一行计数了,第二行刚好空过,第三行又计数一次。这种写法就适合你的隔一行选一个的情况。f(1:2:end; :)这么来写。
第二个例子里面的1:3是从第一行到第三行的意思。
你要单独选指定行也可以写c([1 2 3]; :)

1:2:3 表示第1行到第3行,间隔为2行,这样得到的结果就是第1行和第3行,c(1:2:3,:)=[] 就是令第1行和第3行为空,亦即是删除第1行和第3行的意思,

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632