数学建模社区-数学中国

标题: 矩阵取值问题,用最小内存法,有什么更好的方法么? [打印本页]

作者: 我可以叫什么    时间: 2016-7-2 14:23
标题: 矩阵取值问题,用最小内存法,有什么更好的方法么?
我目前有一矩阵N*20,N会很大,百万以上,现要根据一个序列取每行的一个值,如下例子:
a =[ 1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20;
    21    22    23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40;
    41    42    43    44    45    46    47    48    49    50    51    52    53    54    55    56    57    58    59    60;
    61    62    63    64    65    66    67    68    69    70    71    72    73    74    75    76    77    78    79    80;
    81    82    83    84    85    86    87    88    89    90    91    92    93    94    95    96    97    98    99   100;
   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120;
   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140;
   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160];
b=[1     5;
     2    10;
     3    20;
     4     1;
     5    15;
     6    12;
     7    10;
     8     9];
b的1.2.3.4.5...8是表示取哪行的数据,b(:,2)表示要取每行的数据的地址,哪位有什么方法用最小内存法取到想要的值?谢谢!
我目前的取值方法为: diag(a(:,b(:,2)))


作者: 百年孤独    时间: 2016-7-2 14:31
a(sub2ind(size(a),b(:,1),b(:,2)))

作者: 百年孤独    时间: 2016-7-2 14:31
a(sub2ind(size(a),b(:,1),b(:,2)))





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5