for iii=1:CouB order1 = 1/order(Tt); P = order1/sum(order1); Tabu1(CouA+iii,1) = randsample([Tt,0],1,true,[P,0])'; if order(Tabu1(CouA+iii,1))>=floor(CBmax(Tabu1(CouA+iii,1))) Tabu3(CouA+iii,1) = randi([floor(CBmax(Tabu1(CouA+iii,1))*0.2),CBmax(Tabu1(CouA+iii,1))],1); else Tabu3(CouA+iii,1) = randi([floor(order(Tabu1(CouA+iii,1))*0.2),order(Tabu1(CouA+iii,1))],1); end Tabu2(CouA+iii,1) = TB(Tabu1(CouA+iii,1))*Tabu3(CouA+iii,1); if Tabu1(CouA+iii,1)~=Tabu{1,cou}{1,1}(CouA+iii,2) TimeTabu(CouA+iii,1) = Tabu2(CouA+iii,1)+SwitB(Tabu1(CouA+iii,1)); else TimeTabu(CouA+iii,1) = Tabu2(CouA+iii,1); end order(Tabu1(CouA+iii,1)) = order(Tabu1(CouA+iii,1))-Tabu3(CouA+iii,1); [RR,~] = find(order==0); if ~isempty(RR) for ii=1:length(RR) TT(TT==RR(ii)) = []; Tt(Tt==RR(ii)) = []; end end end
时间: 2024-04-28 21:21:22 浏览: 81
根据您提供的代码,randsample函数的使用看起来没有什么问题。但是,该错误可能是由于变量 Tt 的长度为0导致的。请检查 Tt 变量是否为空或者长度为0,并且确保您已经正确地定义了它。如果 Tt 变量已经被正确地定义,并且您仍然遇到该错误,请尝试打印一些变量值以便更好地理解问题。您也可以提供更多的代码细节以便我更好地帮助您解决问题。
阅读全文