【问题标题】:Deleting every 26th row of a matrix starting with row 8删除从第 8 行开始的矩阵的每 26 行
【发布时间】:2014-10-29 20:28:18
【问题描述】:

如果这是一个相对基本的问题,我深表歉意——我对编程还是有点陌生​​,尤其是 Matlab。我有一个由19026x26 矩阵组成的4940x4940 方阵。在每个较小的矩阵中,我想删除每个8th 行和列(从而删除整个矩阵的行和列83460 ...)。

最简单的方法是什么?

谢谢!

【问题讨论】:

  • 虽然你有一些答案,但我想澄清一些事情。你说你有更小的 26*26 矩阵。那么您是要删除这些较小矩阵的每 8 行,还是整个矩阵中的每 8 行?这将有所不同,在第一种情况下,您将删除第一个较小矩阵中的第 8、16、24 行,再次删除第二个较小矩阵中的第 8、16、24 行(即第 34、42、48 行...整个矩阵)。

标签: matlab matrix


【解决方案1】:

您的标题与问题的主体冲突,但我会同时回答。通过使用带有步长值的冒号运算符,您可以定位要删除的特定行。如果要删除矩阵x 的每 15 行,请使用以下代码。

x(15:15:end,:) = [];

可以使用类似的过程从第 8 行或第 8 列开始以 26 的间隔删除行和列。

x(8:26:end,:) = [];
x(:,8:26:end) = [];

我建议在MathWorks 阅读有关冒号运算符的信息。

【讨论】:

  • +1,看来答案是一样的!我要删除我的,祝你好运。您也可以按照@Parag S. Chandakkar 的建议准备一个完整的答案。
猜你喜欢
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 2019-07-08
相关资源
最近更新 更多