根据向量

时间:2017-11-16 01:43:11

标签: matlab matrix

如果我有一个名为tmp的3 x 3矩阵和矢量数据

tmp = [1,0,0;2,0,0;3,0,0];
data = [1,3];
data = transpose(data);

在第一个元素与数据中的元素匹配的每一行中,我想将第二列中的值更新为1.这将导致tmp看起来像这样:

tmp = [1,1,0;2,0,0;3,1,0];

有没有办法可以在没有for循环的情况下做到这一点?

2 个答案:

答案 0 :(得分:2)

像这样:

tmp(:,2) = ismember(tmp(:,1),data)

结果:

tmp =

     1     1     0
     2     0     0
     3     1     0

答案 1 :(得分:0)

如果你的数据中只有两个元素,那就可以了:

tmp(:,2)=or(tmp(:,1)==data(1),tmp(:,1)==data(2))