matlab:在数组中插入元素

时间:2014-10-14 03:11:49

标签: matlab

这是一个非常基本的问题。我有一个数组“relevant_IDs”。当变量类别为1时,我需要在其中存储1到100个值。类似地,当类别为2时,101到200。因此,当类别为10时,直到901到1000。 我已经为它编写了代码,但它没有插入100个值。

Code:
for i=1: 1000 
     if(category==1 && i>0 && i< 101)
      relevant_IDs(i) = i;
     end
     if(category==2 && i>100 && i< 201)
      relevant_IDs(i) = i;
     end
     if(category==3 && i>200 && i< 301)
      relevant_IDs(i) = i;
     end
     if(category==4 && i>300 && i< 401)
      relevant_IDs(i) = i;
     end
     if(category==5 && i>400 && i< 501)
      relevant_IDs(i) = i;
     end
     if(category==6 && i>500 && i< 601)
      relevant_IDs(i) = i;
     end
     if(category==7 && i>600 && i< 701)
      relevant_IDs(i) = i;
     end
     if(category==8 && i>700 && i< 801)
      relevant_IDs(i) = i;
     end
     if(category==9 && i>800 && i< 901)
      relevant_IDs(i) = i;
     end
     if(category==10 && i>900 && i< 1001)
      relevant_IDs(i) = i;
     end

  end

2 个答案:

答案 0 :(得分:2)

这样的事情应该有效并且更快:

relevant_IDs = (category - 1) * 100 + (1:100);

答案 1 :(得分:1)

您也可以生成整个事物(数字从1到1000),然后使用category值作为索引索引到矩阵中以获得所需的relevant_IDs

relevant_IDs = reshape(1:1000, [100,10]).';
relevant_IDs(category,:)    % this will return a 1x100 row vector
                            % (category is a number from 1 to 10)