1

4902x1Blueのような文字列を含むセル配列があります。または緑。これらの文字列のいくつかを別の単語に置き換えたいと思います。これは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 に答える