1

我有一个向量,它告诉我必须在矩阵中的哪个位置用数据更改某些位和矩阵。例如:

a = [2
     0
     4]

data = [ 1 0 1 0;
         0 0 1 0
         1 1 1 1]

a 告诉我,我必须更改(从 1 翻转到 0)以下值:

  • 第一行第二列
  • 第 3 行中的第 4 列
  • 第二排没有变化!!!

结果是

data2 = [ 1 1 1 0;
          0 0 1 0
          1 1 1 0]

我怎么能只用矢量运算来做到这一点?我不想使用 for 循环,因为它们太慢了。

4

1 回答 1

2

这是一种方法:

   data2=data;
   ind=sub2ind(size(data),find(a),a(a>0));
   data2(ind)=~data(ind) 
于 2013-05-04T04:12:29.927 回答