如何在matlab中将矩阵的行数减少一半?

时间:2016-11-30 21:16:19

标签: matlab matrix

在matlab中将矩阵行数减少一半的最佳方法是什么?

以下命令在做什么?

mymatrix = mymatrix(1:2:end,:);

有没有更好的方法?

1 个答案:

答案 0 :(得分:1)

简短回答这是从第一行(所有奇数行)开始的矩阵mymatrix的每一行,并且是的,这可能是最简单的方法。 根据@Sardar_Usama

的评论添加了说明

更长的版本

end是matlab内部命令,它引用给定维度中数组的结尾。大致相当于size(var,dim)

实际上mymatrix(1:2:end,:)可以重写为mymatrix(1:2:size(mymatrix,1),:)。现在,如果您实际查看1:2:size(mymatrix,1)这些是您要选择的行。1, 3, 5, etc。你可以实际指定你想要的那些行,这里有一些例子。

1:floor(end/2); % first 'half'
floor(end/2)+1:end; % second 'half'
1:3:end; % every third element
1:2:floor(end/2); % every second element in the first 'half'

添加floor()以避免奇数长度的问题。在那种情况下,一半'不是一半,而是大约一半。或者ceil()取决于你想如何为奇数长度定义一半。