MATLAB Answers


Function Changem or substitute values of a matrix

Asked by MSP
on 18 May 2018
Latest activity Commented on by MSP
on 19 May 2018


I am trying to use the function "changem" to substitute values from a matrix..(reference page: I am using matlab 2017a but when I use the function, matlab says that the function is undefined.. I cannot find results when I search for it in the DOC.

Does this function still exists? When no, is there a equivalent function? Or does someone knows a possibility to change values of a matrix (is a little bit complex because I want to change the values of the matrix by an equivalent value of a vector).

Thanks in advance, MP


Sign in to comment.

2 Answers

Answer by Guillaume
on 18 May 2018
Edited by Guillaume
on 18 May 2018
 Accepted Answer

As per sloppydisk's answer, changem requires the mapping toolbox, so clearly you don't have that installed.

I don't have the mapping toolbox either, but reading the function documentation, it seems trivial to implement:

function mapout = my_changem(mapout, newcode, oldcode)
   assert(numel(newcode) == numel(oldcode), 'newcode and oldecode must have the same number of elements');
   [toreplace, bywhat] = ismember(mapout, oldcode);
   mapout(toreplace) = newcode(bywhat(toreplace));

  1 Comment

Thanks, works perfectly. After playing around sometime I did to manage it using 2 for loops and using if loops to check the constrains. But thanks again for the answer!

Sign in to comment.

Answer by sloppydisk
on 18 May 2018

changem is part of the Mapping toolbox, type


to see which toolboxes you have installed.


Sign in to comment.