作者yabiru (RURU)
看板MATLAB
标题[问题] 对array中元素的值同时(一次)做取代
时间Wed Sep 23 22:59:26 2015
大家好,请问
我有一个一维的matrix
a = [1 2 3 2 3 3 4 4]
想对其中的特定的值做取代
1 -> 2
2 -> 3
3 -> 1
4 -> 4 (维持不变)
结果
b = [2 3 1 3 1 1 4 4]
目前我只想到很笨的方法,用loop和logical做
例如:
a = [1 2 3 2 3 3 4 4]
b(a==1) = 2
b(a==2) = 3
b(a==3) = 1
b(a==4) = 4
问题:
1) 有几个不同值需要代换就需要几个loop,上面就要做4次
2) 连不同代换的都做了,例如 4 -> 4,不过这应该好解决
主要想请问,有没有什麽function或其他写法
可以更快速的做这种代换,
因为实际上我要代换的array很大,且有许多不同的值要换...
多谢大家指教,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.161.242.249
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1443020369.A.A6F.html
※ 编辑: yabiru (118.161.242.249), 09/23/2015 22:59:57
1F:推 sunev: 代换前後的值都是正整数吗? 09/24 00:14
2F:→ yabiru: 是的,都是正整数! 09/24 05:31
3F:推 celestialgod: changem 09/24 07:44
4F:→ s4300026: 楼上真的什麽都会耶 QAQ 超强~~~ 09/24 10:13
5F:→ celestialgod: 没有拉,会的不多... 09/24 10:37
6F:推 sunev: 这个也是跑for loop 09/24 14:02