在matlab中将矩阵行数减少一半的最佳方法是什么?
以下命令在做什么?
mymatrix = mymatrix(1:2:end,:);
有没有更好的方法?
答案 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()
取决于你想如何为奇数长度定义一半。