File Exchange

image thumbnail

REPLACE

version 1.0.0.0 (2.14 KB) by Jos (10584)
Replace several elements at once

4.1K Downloads

Updated 08 Dec 2006

View License

Current version 1.4, dec 2006

REPLACE - Replace Elements
B = REPLACE(A,S1,S2) returns a matrix B in which the elements in A that are in S1 are replaced by those in S2. In general, S1 and S2 should have an equal number of elements. If S2 has one element, it is expanded to match the size of S1. Examples:
replace([1 1 2 3 4 4],[1 3],[0 99]) % -> [ 0 0 2 99 4 4]
replace(1:10,[3 5 6 8],NaN) % -> [ 1 2 NaN 4 NaN NaN 7 NaN 9 10]
replace([1 NaN Inf 8 99],[NaN Inf 99],[12 13 14]) % -> [1 12 13 8 14]

[B, TF] = REPLACE(A,S1,S2) also returns a logical vector TF of the same size as A. TF is true for those elements that are replaced.

A and S1 can be cell arrays of strings. In that case S2 should be a cell array as well but can contain mixed types.
Example:
replace({'aa' 'b' 'c' 'a'},{'a' 'b'}, {'xx' 2}) %-> {'aa' [2] 'c' 'xx'}

If S2 is empty, the elements of A that are in S1 are removed.
Examples:
replace(1:5,[2 4],[]) % -> [1 3 5]
replace({'aa' 'a' 'b' 'aa' 'c'},{'aa','c'},{}) % -> {'a', 'b'}

See also FIND, STRREP, REGEXPREP, ISMEMBER

Authhor's note: I failed to find such a utility in matlab or on the FEX so far. Please correct me if there are better alternatives.

Cite As

Jos (10584) (2021). REPLACE (https://www.mathworks.com/matlabcentral/fileexchange/10063-replace), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!