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