【问题标题】:How to delete specific rows and colums in matrices in cell array matlab如何在单元格数组matlab中删除矩阵中的特定行和列
【发布时间】:2020-02-21 19:37:11
【问题描述】:

这里对编码和 Matlab 非常陌生!

我有一个元胞数组 (16*1)(1 列,16 行) 在每个单元格中,我都有一个 76*76 矩阵。

在每个矩阵中,我想删除某些行(例如 1 到 10、22 和 76)和相同的列(1 到 10、22 和 76)。

我不知道该怎么做。我已尝试阅读入门文档,但对我来说仍不清楚。我将非常感谢任何帮助和解释!

谢谢你:)

【问题讨论】:

    标签: matlab matrix cell-array


    【解决方案1】:

    有两种方法可以删除元素。一种是将[]分配给要删除的行和列,另一种是选择您想要的。

    %some example data
    x={magic(76),magic(76)}
    %First option assign []
    x{1}([1:10,22,76],:)=[]
    x{1}(:,[1:10,22,76])=[]
    %Second option, index what you need:
    %All values from 11 to 75 without 22
    selector=setdiff(11:75,22)
    x{2}=x{2}(selector,selector)
    

    显然,您可以在 for 循环中调用它们,而不是硬编码的 {1} 或 {2}。

    一些建议,当您有一个大小相同的矩阵单元格并且您想对每个矩阵执行相同的操作时,可能 (76,76,16) 更适合您。坚持上面的例子:

    x=ones(76,76,16);
    x=x(selector,selector,:);
    

    全部在一行中完成。

    【讨论】:

      猜你喜欢
      • 2016-07-16
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 2016-05-26
      相关资源
      最近更新 更多