我在Matlab中有一个mxn
数组r
,其元素为零或一。
我想构建一个维度p
的向量mxn
,以便i=1,...,m
p(i,1)=r(i,1)
p(i,2)=r(i,2)XOR r(i,1)
p(i,3)=r(i,3) XOR r(i,2)
...
p(i,n)=r(i,n) XOR r(i,n-1)
这段代码符合我的要求,但m,n
大的代码很慢。你能更快地提出建议吗?
m=4;
n=5;
r=[1 1 1 1 1; ...
0 0 1 0 0; ...
1 0 1 0 1; ...
0 1 0 0 0];
p=zeros(m,n);
for i=1:m
p(i,1)=r(i,1);
for j=2:n
p(i,j)=xor(r(i,j),r(i,j-1));
end
end
答案 0 :(得分:2)
不确定
p = zeros(m,n);
p(:,1) = r(:,1);
p(:,2:end) = xor( r(:,1:(end-1)), r(:,2:n) );
我们在这里做的是:
p
r
的第一列
p
操作填写XOR
的倒数第二列。作为XOR
的输入,我们使用了r
的两个大部分。第一个是第1列(最后1列)。第二个是第二列到第二列。