我需要编写一个脚本来将矩阵A(1x25)更改为B(1x24)
A = [1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1];
我想通过此规则更改此矩阵:
最后我需要有这个Matrix B(1x24)
B = [1 1 1 i -1 -i 1 1 1 i -1 -i 1 1 1 i -1 -i i -i 1 1 1 1];
答案 0 :(得分:0)
A = [1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1];
for Index=1:length(A)-1
Temp=A(Index)+A(Index+1);
switch(Temp)
case 0, B(Index)=-1;
case 1, if(A(Index)==1) B(Index)=i; else B(Index)=-i; end;
case 2, B(Index)=1;
end
end
答案 1 :(得分:0)
<强>代码强>
dA = diff(A);
B = i*(dA==-1) + A(2:end).*~dA + -1*(~A(2:end).*~dA) + -i*(dA==1)
i = 5 的样本输出
B =
1 1 1 5 -1 -5 1 1 1 5 -1 -5 1 1 1 -1 -5 5 -5 1 1 1 1
答案 2 :(得分:0)
A = [1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1]; %// data
values = [-1 -i i 1]; %// values for 00, 01 10, 11 in that order
B = values(2*A(1:end-1)+A(2:end)+1);