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

问题描述 投票:0回答:1

这里是编码和Matlab的新手!

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

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

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

谢谢:)

matlab matrix cell-array
1个回答
0
投票

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

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

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

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

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

全部在一行中完成。

© www.soinside.com 2019 - 2024. All rights reserved.