[已答复] 这串代码运行时会出现“位置 1 的索引超出数组范围(不能超过 4)。”的错误提示,请问该如何修改

[复制链接]
chu'de'shui 发表于 2021-6-9 20:06:15
pop=10;
P=4;
for i=1:pop
   while 0<1
        for j=1:8
            x(i,j)=round(rand(1));   
        end
        if(sum(x(i,:),2)>=1)&(sum(x(i,:),2)<=P)
            break
        end
    end
end  

for i=1:pop
    for j=1:8
        if x(i,j)==0
            y(i,(8*(j-1)+1):(8*j))=0;
        else
            while x(i,j)==1
                y(i,(8*(j-1)+1):(8*j))=round(rand(1,8));
                if y(i,(8*(j-1)+1):(8*j))<=repmat(x(i,j),1,8)*(1-round(rand(1)))
                    break
                end
                yy=reshape(reshape(y,[],8)',[],8);
                yyy(i,:)=sum(yy((8*(i-1)+1):(8*i),:));
%                 if yyy(:)>=1
%                     break
%                 end
            end
        end
    end
end

3 条回复


aijunhao 发表于 2021-6-10 11:37:58
chu'de'shui 发表于 2021-6-10 09:28
感谢您的回复指导,但是第26行的求和,我是想将矩阵yy每8行的每一列求和,而非您所说的将yy矩阵的所有行 ...

能不能说出你代码的实现作用,你的源代码多次运行,有时候可以运行成功有时候不可以,你最好吧要实现的功能说明一下

chu'de'shui 发表于 2021-6-10 09:28:11

感谢您的回复指导,但是第26行的求和,我是想将矩阵yy每8行的每一列求和,而非您所说的将yy矩阵的所有行,1到8列求和

20141303 发表于 2021-6-9 21:58:29
仅供参考

  1. pop=10;
  2. P=4;
  3. for i=1:pop
  4.    while 0<1
  5.         for j=1:8
  6.             x(i,j)=round(rand(1));   
  7.         end
  8.         if(sum(x(i,:),2)>=1)&(sum(x(i,:),2)<=P)
  9.             break
  10.         end
  11.     end
  12. end  

  13. for i=1:pop
  14.     for j=1:8
  15.         if x(i,j)==0
  16.             y(i,(8*(j-1)+1):(8*j))=0;
  17.         else
  18.             while x(i,j)==1
  19.                 y(i,(8*(j-1)+1):(8*j))=round(rand(1,8));
  20.                 if y(i,(8*(j-1)+1):(8*j))<=repmat(x(i,j),1,8)*(1-round(rand(1)))
  21.                     break
  22.                 end
  23.                 yy=reshape(reshape(y,[],8)',[],8);
  24.                 yyy(i,:)=sum(yy(:,1:8));
  25. %                 if yyy(:)>=1
  26. %                     break
  27. %                 end
  28.             end
  29.         end
  30.     end
  31. end
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表