[问题] 对array中元素的值同时(一次)做取代

楼主: yabiru (RURU)   2015-09-23 22:59:26
大家好,请问
我有一个一维的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很大,且有许多不同的值要换...
多谢大家指教,谢谢
作者: sunev (Veritas)   2015-09-24 00:14:00
代换前后的值都是正整数吗?
楼主: yabiru (RURU)   2015-09-24 05:31:00
是的,都是正整数!
作者: celestialgod (天)   2015-09-24 07:44:00
changem
作者: s4300026 (s4300026)   2015-09-24 10:13:00
楼上真的什么都会耶 QAQ 超强~~~
作者: celestialgod (天)   2015-09-24 10:37:00
没有拉,会的不多...
作者: sunev (Veritas)   2015-09-24 14:02:00
这个也是跑for loop

Links booklink

Contact Us: admin [ a t ] ucptt.com