MATLAB中向量范围表达式内的逻辑运算

时间:2015-03-30 19:00:58

标签: matlab vector range expression logical-operators

我可以拥有像

这样的东西吗?
A=1:10;

A(1:2 && 5:6)=0;

意思是我想在一行

中将我的矢量索引表达式中的特定范围归零

这可能吗?

如果我想将所有其他内容归零

,该怎么办?
A(~[1:2]) = 0 

向量索引中逻辑NOT的方式是什么?

由于

2 个答案:

答案 0 :(得分:1)

以下内容应该有效:

idx = [1:2,5:6];
A(idx) = 0

如果要将索引向量的补码归零:

idx = [1:2,5:6];
A(~ismembc(1:length(A),idx)) = 0

ismembcismember的更快,轻量级版本,它假设数组已排序且非稀疏且没有NaN个元素。 (信用证转到this question。)

答案 1 :(得分:1)

A([1:2 5:6])。即,只需创建一个想要归零的索引向量。