Mat*_*teo 15 indexing matlab vector
我的问题与此问题非常相似,但我无法确切地知道如何将答案应用于我的问题.
我正在循环一个带变量的向量,k并希望选择整个向量,除了索引处的单个值k.
任何的想法?
for k = 1:length(vector)
newVector = vector( exluding index k); <---- what mask should I use?
% other operations to do with the newVector
end
Run Code Online (Sandbox Code Playgroud)
vector([1:k-1 k+1:end])会做.但是,根据其他操作,可能有更好的方法来处理这个问题.
为了完整性,如果要删除一个元素,则不需要去vector = vector([1:k-1 k+1:end])路由,可以使用vector(k)=[];
只是为了好玩,这里有一个有趣的方式setdiff:
vector(setdiff(1:end,k))
Run Code Online (Sandbox Code Playgroud)
有什么有趣的,除了使用之外setdiff,你问?看看的位置end.MATLAB的end关键字转换vector为此上下文中的最后一个索引,即使作为函数调用的参数而不是直接与paren(vector的()运算符)一起使用.无需使用numel(vector).换一种方式,
>> vector=1:10;
>> k=6;
>> vector(setdiff(1:end,k))
ans =
1 2 3 4 5 7 8 9 10
>> setdiff(1:end,k)
Error using setdiff (line 81)
Not enough input arguments.
Run Code Online (Sandbox Code Playgroud)
这并不是完全明显的IMO,但它在许多情况下都会派上用场,所以我想我会指出这一点.
| 归档时间: |
|
| 查看次数: |
41472 次 |
| 最近记录: |