2
我很難找到一個matlab函數來將一個元素從一個數組中切片出來。切片陣列
例如:
A = [1, 2, 3, 4]
我要拿出這個數組的元素,比如元素3:
B = [1, 2, 4]
是否有這樣的MATLAB函數或我將不得不代碼該算法構造一個新的數組除了3的所有元素?
我很難找到一個matlab函數來將一個元素從一個數組中切片出來。切片陣列
例如:
A = [1, 2, 3, 4]
我要拿出這個數組的元素,比如元素3:
B = [1, 2, 4]
是否有這樣的MATLAB函數或我將不得不代碼該算法構造一個新的數組除了3的所有元素?
做到這一點:
index_of_element_to_remove = 3;
A(index_of_element_to_remove) = [];
現在A將[1 2 4]
如果你想在同一時間刪除更多的元件可以這樣做:
index_of_element_to_remove = [1 3];
A(index_of_element_to_remove) = [];
現在A將[2 4]
按價值計算,這將刪除等於所有元素3
A(find(A==3)) = []
或者通過索引
A(3) = []
第一種情況是爲'A(A == 3)= []'更好。請參閱「邏輯索引」。 – Nzbuu
@Nzbuu,完全同意我的答案也應該包括邏輯索引,但什麼構成更好的是[討論](http://stackoverflow.com/questions/3133712/logical-vs-numerical-array-in-matlab )。 – Maurits
在這種情況下不應該討論。如果你正在做這種索引,那麼給'find'增加一個額外的調用總是多餘的,會降低性能。這兩個版本都讀作「從A中刪除等於3的元素」。 – Nzbuu