我有一个4902x1
单元格数组,其中包含像 Blue 这样的字符串。或绿色。我想用另一个词替换其中的一些字符串。如何在 MATLAB 中做到这一点?
比如找
Blue.
Red.
Green.
用。。。来代替:
Colour.
编辑:
strArray = {'green.','black.'};
strMatch = strmatch(strArray, Book2);
strArray( strMatch(str,strArray)) = {'colour'};
我有一个4902x1
单元格数组,其中包含像 Blue 这样的字符串。或绿色。我想用另一个词替换其中的一些字符串。如何在 MATLAB 中做到这一点?
比如找
Blue.
Red.
Green.
用。。。来代替:
Colour.
编辑:
strArray = {'green.','black.'};
strMatch = strmatch(strArray, Book2);
strArray( strMatch(str,strArray)) = {'colour'};
为什么不使用
strArray( strmatch(str,strArray) ) = {'newString'};
在此示例中,您需要将变量 str 设置为您希望搜索的字符串,例如 str ='green。
编辑:更新以反映您对原始帖子的编辑。
strArray = {'green.','black.'};
strMatch = strmatch(strArray, Book2); % This line is unnecessary and if Book2 is not a string variable it will not work
strArray( strMatch(str,strArray)) = {'colour'}; % For this line to work you need declare a string value for the variable str, e.g. str='green.'
如果您有一个字符串元胞数组(在您的示例中 strArray 不是元胞数组),我将定义一个小函数来执行逻辑,然后使用cellfun
:
function y = changecolor(str)
if( strcmpi('green',str) || strcmpi('blue',str) )
y = 'color';
else
y = str;
end
然后你可以得到你的新数组:
changed_array = cellfun(@changecolor, strCellArray,'Uniform',false)