matlab:任意多個子區(qū)間快速索引

需求

想要提取一個數組里的幾個"不同部位"(被不像要的元素隔開)的元素組!刪去不像要的元素太麻煩,如何仍用"索引的方法"一次提取想要的多個"間隔分布"的子數組/區(qū)間?

matlab實現(xiàn)

語法:a( [1:2 4:7 9:11] )
說明:索引()里面帶一個[]大區(qū)間,一個大區(qū)間里可以放多個小區(qū)間,即實現(xiàn)多個小區(qū)間的同時索引!
需求示例:有一個[2 0 1 4 1 0 0 3 0 4 1 2 1 8 3 8 0 3 1]數組,我想提其中的[2 0 1 4 1 2 1 8 0 3 1]怎么辦?

程序實現(xiàn):

x = [2 0 1 4 1 0 0 3 0 4 1 2 1 8 3 8 0 3 1];
n = length(x);

b = x([1:4 11:14 17:n])
% 結果:
b =

     2     0     1     4     1     2     1     8     0     3     1

用途拓展:循環(huán)時可以只對"想要改變的子區(qū)間"操作!

補充

對比2個語法:

  • a(2:4)
  • a([2:4])

兩個的效果是完全一樣的!也就是說,只選一個連續(xù)子區(qū)間時,直接用a(n:m)即可,不需要a([n:m])這樣多一個中括號。但是:

  • a(2:4, 5:8); \quad % 報錯
  • a([2:4, 5:8]); \quad % 正?!?/li>

所以:當只選1個連續(xù)子區(qū)間時,用一個小括號即可;當一次選多個子區(qū)間時,只能用本文提到的方法([])。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容