1

我有一个4902x1单元格数组,其中包含像 Blue 这样的字符串。或绿色。我想用另一个词替换其中的一些字符串。如何在 MATLAB 中做到这一点?

比如找

Blue.
Red. 
Green.

用。。。来代替:

Colour.

编辑:

strArray = {'green.','black.'};
strMatch = strmatch(strArray, Book2);
strArray( strMatch(str,strArray)) = {'colour'};
4

2 回答 2

2

为什么不使用

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.'
于 2012-11-19T18:43:20.357 回答
2

如果您有一个字符串元胞数组(在您的示例中 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)
于 2012-11-19T19:00:36.440 回答