matlab bound 3 4,指數越界;在matlab中值爲1 out of bound 0

「hi 這個程序在Matlab中讀取兩個輸入文件(file.txt和file2.txt),它有80000個隨機數當我執行下面的程序時它有錯誤(索引超出範圍;在Matlab中值爲1的0)我無法修復這個錯誤,好心我需要你的幫助。指數越界;在matlab中值爲1 out of bound 0

clear all

close all

rel=textread('file.txt');

ct=textread('file2.txt');

bh0=zeros(256,20000);

bh1=zeros(256,20000);

Te2=[99 124 119 123 242 107 111 197];

for i=1:20000

m(i)=bitxor(ct(16*(i-1)+1),180);

if m(i)==Te2(1)|m(i)==Te2(2)|m(i)==Te2(3)|m(i)==Te2(4)|m(i)==Te2(5)|m(i)==Te2(6)|m(i)==Te2(7)|m(i)==Te2(8)

bh0(m(i)+1,i)=rel(1+4*(i-1));

else

bh1(m(i)+1,i)=rel(1+4*(i-1));

end

end

for k=1:256

counter=1;

for i=1:20000

if bh0(k,i)~=0

bh0_final(k,counter)=bh0(k,i);

counter=counter+1;

end

end

end

for k=1:256

counter=1;

for i=1:20000

if bh1(k,i)~=0

bh1_final(k,counter)=bh1(k,i);

counter=counter+1;

end

end

end

for i=1:20000

ciphertext0(i)=ct(16*(i-1)+1);

reload0(i)=rel(1+4*(i-1));

end

sum_c0=zeros(20000,256);

for i=1:20000

for j=1:256

if ciphertext0(i)==j

sum_c0(i,j)=reload0(i);

end

end

end

counterr=zeros(1,256);

summ=zeros(1,256);

for i=1:20000

for k=1:256

if sum_c0(i,k)~=0

counterr(k)=counterr(k)+1;

summ(k)=summ(k)+sum_c0(i,k);

end

end

end

for k=1:256

mean(k)=summ(k)/counterr(k);

end

var=zeros(1,256);

for i=1:20000

for k=1:256

if sum_c0(i,k)~=0

var(k)=((sum_c0(i,k)-mean(k))^2)/counterr(k);

end

end

end

+2

其實讀完整的錯誤,並思考它說什麼。 Matlab的錯誤消息非常有用。它會告訴你哪個語句導致錯誤,這使得解決問題變得更容易。 –

+0

沒有閱讀代碼,問題可能是空矩陣?你有一個0×1的矩陣,而不是1×0的矩陣或類似的東西?除此之外,實際上很難說出爲什麼出現界限錯誤。我可以建議[調試器](http://se.mathworks.com/help/matlab/debugging-code.html)? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值