[讨论] 新手发问矩阵取值做xor

楼主: sonia6121 (sonia)   2015-05-21 15:09:24
这是我第一次发文发问,如有冒犯错误请各位大大们纠正我
我是matlab新手刚接触不久
最近在写一个程式
我的目的是要把txt档里面的值取出来
[0111
00101
11011
...
...共26行]
每行两两相比总共会有325种组合
长度相同的直接做xor(ex:00101 )xor=11110然后再做sum取出1+1+1+1+0=4这个值
11011
假如长度不同就要分别用前段跟后段取xor在相加(ex:0111 )xor的作法(0111)=0101
00101 0010
做sum=2再和xor(0111)=0010 sum=1 相加=3
0101
以下是我的程式码
fid=fopen('dfree.txt','r');
[num1]= textscan(fid,'%s','headerlines',1);
n=[];
for k=1:26
n{k}= num1{1}{k};
end
str2num('n');
g=0;
dbfree=0;
dcfree=0;
ddfree=0;
for i=1:25
g=k+g-i;
for k=(i+1):26
(k-i)+g;
if(length(n{i})==length(n{k}))
b=xor(n{i},n{k});
dbfree=sum(b);
else
i<=k;
c=xor(n{i},n{k-(k-i)});
dcfree=sum(c);
fliplr(n{i});
fliplr(n{k});
d=xor(n{i},n{k-(k-i)});
ddfree=sum(d);
end
end
dfree=(dbfree)|(dcfree+ddfree)
end
不知道哪里有错还是指令用错我跑出来dree都是=0
感谢各位大大看完我冗长的文章QQ
作者: celestialgod (天)   2015-05-21 15:22:00
你的k一开始没宣告 然后回圈第一行就有k...我后面都还没读,就看不懂了(摊手你的程式后面还有很多问题,要一行行改,我做不到我直接帮你写了

Links booklink

Contact Us: admin [ a t ] ucptt.com