如何在单元格数组matlab中删除矩阵中的特定行和列

如何在单元格数组matlab中删除矩阵中的特定行和列,matlab,matrix,cell-array,Matlab,Matrix,Cell Array,非常新的编码和Matlab在这里 我有一个单元格数组(16*1)(1列,16行) 在每个单元格中,我有一个76*76矩阵 在每个矩阵中,我想删除某些行(例如1到10、22和76)和相同的列(1到10、22和76) 我不知道该怎么办。我试图阅读入门文档,但对我来说仍然不清楚。。我将非常感谢任何帮助和解释 谢谢:)删除元素有两种方法。一个是将[]分配给要删除的行和列,另一个是选择要删除的行和列 %some example data x={magic(76),magic(76)} %First opt

非常新的编码和Matlab在这里

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

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

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


谢谢:)

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

%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}

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

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

所有操作都在一行中完成。

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

%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}

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

x=ones(76,76,16);
x=x(selector,selector,:);
全部在一行中完成