Replacing values in a column vector.
2 次查看(过去 30 天)
显示 更早的评论
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.
采纳的回答
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
0 个评论
更多回答(1 个)
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!