存储矢量,Matlab

时间:2014-04-04 03:41:32

标签: matlab

我需要在我的程序中存储矢量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

1 个答案:

答案 0 :(得分:0)

每次循环播放i和k时,都会覆盖PVX。如果要在i-loop中存储PVX,可以使用

PVX(i,:) = [numbas, POW];

由于您事先并不知道PVX的大小(至少在您设置代码的方式上),因此预分配不起作用。