matlab - 删除子串

标签 matlab function loops for-loop

我正在尝试编写一个程序,如果它包含特定字符串,则删除元胞数组的索引。

例如,如果函数的输入值为 ({'Hello how are you?', 'I'm fine thank you', 'Have a nice day!'}, 'you'),只会返回字符串 'Have a nice day!'

这是我目前所拥有的(它不会删除索引,只会删除它出现的实例):

function d = take_out(v, s)
d = regexprep(v(:), s, '');
end

最佳答案

试试这个:

function d = take_out(v, s)
    d = v(cellfun('isempty', regexp(v(:), s)));
end

regexp(v(:), s)v 的每个单元格返回一个(可能为空)向量,其中包含 每次出现的整数索引>scellfun('isempty', ...) 检查这些向量是否为空,并返回一个逻辑索引,用于选择 v 的适当单元格。

关于matlab - 删除子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30446721/

相关文章:

matlab - 如何在没有眼睛和循环的情况下创建单位矩阵

python - 使用 NumPy 进行 Procrustes 分析?

R studio 在我的函数中找不到对象

C++通过派生对象访问基类的虚函数

php - 将 while() 数组传递给 php 中的 while() 变量

java - java.sql.DriverManager.getConnection 突然出现 "license checkout failed"

matlab - 我可以提高这个Matlab函数的效率吗?

php - 协调显示/隐藏 JQuery 脚本到 PHP

java - 在 Java 中使用 For 循环打印模式

c++ - 如何使用基于范围的for循环迭代器?