注意:我猜您的变量name
是字符串的单元格数组,在这种情况下,您将希望使用{}
(即内容索引)而不是()
(即单元格索引)从中获取字符串...
与 MATLAB 中的许多问题一样,有许多不同的方法可以解决这个问题......
选项 1:您可以使用函数REGEXPREP。以下删除连字符、正斜杠和空格:
newName = regexprep(name{i},'[-/\s]','');
这里的好处是\s
它将匹配和替换所有空白字符,其中包括普通空格(ASCII 代码 32)以及制表符、换行符等。
如果您想安全并删除MATLAB 变量/字段名称中的每个无效字符,您可以将上述简化为:
newName = regexprep(name{i},'\W','');
选项 2:如果您不需要担心删除列出的 3 个字符以外的任何内容,则可以使用ISMEMBER函数,如下所示:
newName = name{i};
newName(ismember(newName,'-/ ')) = [];
选项 3:如果您只想保留所有字母数字字符并转储其余部分(连字符、空格、下划线等),则可以使用函数ISSTRPROP:
newName = name{i};
newName = newName(isstrprop(newName,'alphanum'));