Replacing values in a column vector.

조회 수: 2 (최근 30일)
Fayyaz
Fayyaz 2014년 7월 7일
답변: Azzi Abdelmalek 2014년 7월 7일
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
Thanks in advance.
  댓글 수: 2
Robert Cumming
Robert Cumming 2014년 7월 7일
what have you tried?
Fayyaz
Fayyaz 2014년 7월 7일
I was trying to get idea from matlab "find and replace substring" but don't understand how to apply to this case.

댓글을 달려면 로그인하십시오.

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2014년 7월 7일
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

추가 답변 (1개)

Robert Cumming
Robert Cumming 2014년 7월 7일
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.
  댓글 수: 1
Fayyaz
Fayyaz 2014년 7월 7일
OK thanks. Let me try on logical indexing.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by