gpt4 book ai didi

arrays - 如何从 MATLAB 元胞数组的矩阵中删除特定列?

转载 作者:行者123 更新时间:2023-12-02 06:20:35 25 4
gpt4 key购买 nike

如果我有一个元胞数组,其中包含几个矩阵。每个矩阵的行数不同,列数相同。

C{1} = [30x4 双]
C{2} = [25x4 双]
C{3} = [32x4 双] ...等

如果我想删除每个矩阵中的第一列和第三列,我该怎么办?

因此元胞数组将变为:

new_C{1} = [30x2 双]
new_C{2} = [25x2 双]
new_C{3} = [32x2 双]

其中 new_C 中的这两列来自元胞数组 C 中的第二列和第四列。

最佳答案

我假设您已经使用 for 循环尝试了明显的解决方案。另一种方法是使用 cellfun ,与 logical indexing 结合:

columns = false(1, 4);
columns([2, 4]) = true;
D = cellfun(@(m)m(:,columns), C, 'UniformOutput', 0)

首先,我们为列构建一个索引向量。然后我们使用 cellfun 将索引应用于元胞数组中的每个元素。我们使用'UniformOutput', 0,因为我们想要获得另一个元胞数组(并且索引操作的结果不是标量)。

关于arrays - 如何从 MATLAB 元胞数组的矩阵中删除特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com