# Replacing values in a column vector.

1 view (last 30 days)
Fayyaz on 7 Jul 2014
Answered: Azzi Abdelmalek on 7 Jul 2014
Hello.
I've a column vector 61312*1. Values ranges from 0 to 20. I need to replace the values (0 to 20) with the below mentioned values(0 to 7):
0=0, 1=1, 2,3=2, 4=3, 5,6,13=4, 7,8,9=5, 10,11,12,16=6, 14,15,17,18,19,20=7
Robert Cumming on 7 Jul 2014
what have you tried?
Fayyaz on 7 Jul 2014
I was trying to get idea from matlab "find and replace substring" but don't understand how to apply to this case.

Azzi Abdelmalek on 7 Jul 2014
A=randi([0 20],20,1) % Example
a1={0 1 [2 3] 4 [5 6 13] [7 8 9] [10 11 12 16 ] [14 15 17 18 19 20]} % Numbers to be replaced
b1=[0 1 2 3 4 5 6 7] % Numbers that will replace your original array
idx=cellfun(@(x) ismember(A,x),a1,'un',0)
for k=1:numel(idx)
A(idx{k})=b1(k)
end

Robert Cumming on 7 Jul 2014
Your dealing with a matrix - which I assume contains numeric data, so look up the help and examples for find and ideally logical indexing.
Finding out how to do this yourself will teach you a lot more than me giving you the answer.
Fayyaz on 7 Jul 2014
OK thanks. Let me try on logical indexing.

### Categories

Find more on Matrix Indexing in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!