![]() |
如何格式化字符串以用作MATLAB中的结构字段名称?
我要删除连字符( - ),斜杠( / )和空格( )从字符串name(i)删除,以便我可以将其用作结构字段名称。
这是我目前使用功能[URL="http://www.mathworks.com/help/techdoc/ref/strrep.html"]strrep[/URL]的丑陋方式: cell2mat(strrep(strrep(strrep(name(i), '-',''),'/',''),' ', '')) 我还尝试了其他变体,例如: strrep(name(i),{'-','/'},{'',''}); strrep(name(i),['-','/'],['','']); 什么是更有效的方法? [B]回答:[/B] [I]注意:[/I]我猜您的变量name是一个字符串单元格数组,在这种情况下,您将要使用{} (即[URL="http://www.mathworks.com/help/techdoc/matlab_prog/br04bw6-98.html#br04bw6-108"][I]内容[/I]索引[/URL] )而不是() (即[URL="http://www.mathworks.com/help/techdoc/matlab_prog/br04bw6-98.html#br04bw6-108"][I]单元[/I]索引[/URL] )从中获取字符串... 与MATLAB中的许多问题一样,有多种方法可以解决此问题。 [B]选项1:[/B]您可以使用函数[URL="http://www.mathworks.com/help/techdoc/ref/regexprep.html"]REGEXPREP[/URL] 。以下内容删除连字符,正斜杠和空格: newName = regexprep(name{i},'[-/\s]',''); 这样做的好处是\s将匹配并替换[I]所有[/I]空格字符,其中包括普通空格(ASCII代码32)以及制表符,换行符等。 为了安全起见,请删除[URL="http://www.mathworks.com/help/techdoc/ref/isvarname.html"]MATLAB变量/字段名称[/URL]中[I]所有[/I]无效的字符,可以将以上内容简化为: newName = regexprep(name{i},'\W',''); [B]选项2:[/B]如果您不必担心删除列出的3个字符以外的任何其他字符,则可以使用[URL="http://www.mathworks.com/help/techdoc/ref/ismember.html"]ISMEMBER[/URL]函数, [URL="http://www.mathworks.com/help/techdoc/ref/ismember.html"]如下[/URL]所示: newName = name{i}; newName(ismember(newName,'-/ ')) = []; [B]选项3:[/B]如果只想保留字母数字字符的所有内容并转储其余字符(连字符,空格,下划线等),则可以使用函数[URL="http://www.mathworks.com/help/techdoc/ref/isstrprop.html"]ISSTRPROP[/URL] : newName = name{i}; newName = newName(isstrprop(newName,'alphanum')); [url=https://stackoverflow.com/questions/4197729]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 03:01。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.