gpt4 book ai didi

matlab - 从Matlab中的单元格中删除元素

转载 作者:太空宇宙 更新时间:2023-11-03 19:23:47 24 4
gpt4 key购买 nike

在矩阵中,要删除第一行元素为0的列,我们可以使用:

ind2remove = (A(1,:) == 0);
A(:,ind2remove) = [];

如果 A 是一个单元格,我该怎么做?我想删除第一行元素为0的列。

我试过:

ind2remove = (A{1,:} == 0);
A{:,ind2remove} = [];

但我收到错误信息:

??? Error using ==> eq
Too many input arguments.

Error in ==> ind2remove = (A{1,:} == 0);

最佳答案

使用 { } 进行索引可为您提供单元格的内容,而使用 ( ) 进行索引会返回与原始对象相同的类型,即,如果 A 是一个单元格,A{i,j} 将返回它所持有的内容,而 A(i,j) 将始终返回一个细胞。你需要后者。

因此在您的情况下,您可以执行以下操作以消除第一行具有 0 的所有列。

A(:, cellfun(@(x)x==0, A(1,:))) = [];

根据您的评论,这里的假设是第一行中的每个单元格仅包含一个数字元素。

关于matlab - 从Matlab中的单元格中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694648/

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