Matlab 教材:向量的合成

若 v 是一個維度 N 的向量 (或序列),ind 是另一個向量 (或序列)。假設

ind = [n1   n2   n3   ...   nk]
則 v(ind) 的意思就是
[v(n1)   v(n2)   v(n3)   ...   v(nk)]
這就是 Matlab 提供的「向量合成」性質。

例如

v = [-2 -1 0 1 2 3]
ind = [2 2 1 1 6]
v(ind)
就輸出 [v(2), v(2), v(1), v(1), v(6)] 這個序列, 也就是 [-1 -1 -2 -2 3]。

因此

v( 1:2:6 )
就取出 v 的奇數項元素。而
v (6:-1:1)
就把 v 的元素從尾到頭重排了一遍。

之前已經知道 sort(v) 只能將 v 的元素從小到大排序。 如果要從大到小排序,就可以用上述技倆:先從小到大排好, 再把它們調過頭來重排就好了:

w = sort(v);
w(6:-1:1)

如果 ind 的元素超出 v 的足標範圍,就會得到錯誤訊息。 如果 ind 的元素不全是正整數,也會得到錯誤訊息。

其實矩陣也能合成,只是比較複雜了,初學者不必急著學, 以後操作 Matlab 經驗較豐富了再學。

習題

[BCC16-B]
單維彰 (03/04/16) ---
[Prev] [Next] [Up]