[討論] 新手發問矩陣取值做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