我需要在我的程序中存储矢量PVX,我已经完成了预分配技巧,但它不起作用。我一直在收到最后一个条目。为什么存储东西太难了。我希望每个numbas的矢量PVX = [numbas,POW],所以我可以参考它们。
n=100;
primlist=2;
for numba=1:n;
if mod(2+numba,primlist)~=0
primlist=[primlist;2+numba];
end
end
PVX=zeros(size(1,26)); %Pre-allocating vector
for numbas=2:n
prims=zeros(size(primlist));
pow=prims;
for k=1:10
for i=1:length(primlist)
if mod(numbas,primlist(i).^k)==0
prims(i)=primlist(i); % sum of all the powers of prims, such that prims divide numbas
pow(i)=k;
POW=pow';
PVX=[numbas,POW];
end
end
end
end
PVX
答案 0 :(得分:0)
每次循环播放i和k时,都会覆盖PVX。如果要在i-loop中存储PVX,可以使用
PVX(i,:) = [numbas, POW];
由于您事先并不知道PVX的大小(至少在您设置代码的方式上),因此预分配不起作用。