matlab:在数组中插入元素

matlab:在数组中插入元素,matlab,Matlab,这是一个非常基本的问题。我有一个数组“相关的\u id”。当变量类别为1时,我需要在其中存储1到100个值。类似地,类别为2时为101到200。一直到901到1000,类别是10。 我已经为它编写了代码,但它没有在其中插入100个值 Code: for i=1: 1000 if(category==1 && i>0 && i< 101) relevant_IDs(i) = i; end if(category

这是一个非常基本的问题。我有一个数组“相关的\u id”。当变量类别为1时,我需要在其中存储1到100个值。类似地,类别为2时为101到200。一直到901到1000,类别是10。 我已经为它编写了代码,但它没有在其中插入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
代码:
对于i=1:1000
如果(类别==1&&i>0&&i<101)
相关_id(i)=i;
结束
如果(类别==2&&i>100&&i<201)
相关_id(i)=i;
结束
如果(类别==3&&i>200&&i<301)
相关_id(i)=i;
结束
如果(类别==4&&i>300&&i<401)
相关_id(i)=i;
结束
如果(类别==5&&i>400&&i<501)
相关_id(i)=i;
结束
如果(类别==6&&i>500&&i<601)
相关_id(i)=i;
结束
如果(类别==7&&i>600&&i<701)
相关_id(i)=i;
结束
如果(类别==8&&i>700&&i<801)
相关_id(i)=i;
结束
如果(类别==9&&i>800&&i<901)
相关_id(i)=i;
结束
如果(类别==10&&i>900&&i<1001)
相关_id(i)=i;
结束
结束

类似的方法应该可以工作,而且速度更快:

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

像这样的东西应该能起作用,而且要快得多:

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

像这样的东西应该能起作用,而且要快得多:

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

像这样的东西应该能起作用,而且要快得多:

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

您也可以只生成整个内容(从1到1000的数字),然后使用
category
值作为索引索引到矩阵中,以获得所需的
相关ID

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)

您也可以只生成整个内容(从1到1000的数字),然后使用
category
值作为索引索引到矩阵中,以获得所需的
相关ID

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)

您也可以只生成整个内容(从1到1000的数字),然后使用
category
值作为索引索引到矩阵中,以获得所需的
相关ID

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)

您也可以只生成整个内容(从1到1000的数字),然后使用
category
值作为索引索引到矩阵中,以获得所需的
相关ID

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)