matlab 中根据二维数组,输出一维数组

如图所示,要输出的一维数组是以 a 开头的连续 b 个数,a 为上图第一列数,b 为上图第二列数。
上图输出的数据就是 3,4,5,6,7,8,9,10,14,15,16,31,32,33,45,46,47,52,53,54,55 ……
不想用循环语句,效率低,希望能直接调用 matlab 相关函数来实现这一功能,可是我到处搜索都没有找到如何实现。谢谢各位了!
部分数据的文本形式如下:
3 4
7 4
14 3
31 3
45 3
52 4
56 3
76 8
93 4
102 6
122 4
131 5
136 9
146 4
150 13
165 8
175 7
187 5
195 3
202 5
208 5
214 3

第1个回答  2015-03-18
您好,其实很简单,数组在MATLAB中是按列存储的,只要 A = B(:) 就行了,至于输出用reshape 吧。追问

不好意思,我没有理解你的意思 。A,B 分别代表什么?

第2个回答  2015-03-18
A = [3 4

    7 4

    14 3

    31 3

    45 3

    52 4

    56 3

    76 8

    93 4

    102 6

    122 4

    131 5

    136 9

    146 4

    150 13

    165 8

    175 7

    187 5

    195 3

    202 5

    208 5

    214 3];

A(:,3) = A(:,1)+A(:,2)-1;

mh = repmat(':',size(A,1),1);

S = [num2str(A(:,1)) mh num2str(A(:,3))];

R = arrayfun(@(m) eval(S(m,:)),1:size(S,1),'un',false);

RR = cell2mat(R)

  Columns 1 through 21

     3     4     5     6     7     8     9    10    14    15    16    31    32    33    45    46    47    52    53    54    55

  Columns 22 through 42

    56    57    58    76    77    78    79    80    81    82    83    93    94    95    96   102   103   104   105   106   107

  Columns 43 through 63

   122   123   124   125   131   132   133   134   135   136   137   138   139   140   141   142   143   144   146   147   148

  Columns 64 through 84

   149   150   151   152   153   154   155   156   157   158   159   160   161   162   165   166   167   168   169   170   171

  Columns 85 through 105

   172   175   176   177   178   179   180   181   187   188   189   190   191   195   196   197   202   203   204   205   206

  Columns 106 through 113

   208   209   210   211   212   214   215   216

第3个回答  2015-03-18
我试试看 完全不用循环 似乎还是有点麻烦…………追问

其实我用循环也做出来了,只是这 1472 行只是其中一部分数据,如果所有数据都用循环的话,时间会非常慢
耽误您的时间,非常不好意思

追答

你只用了一层循环……?

追问

2 层

追答

似乎 弄的差不多了,不过还是用了一次循环,不过循环和你的行数无关…………
把你的数据给我,我试试看效果怎么样!

追问

不好意思,数据是学校的,说是保密的,不能外传,谢谢你了,耽误您的时间,非常不好意思。
我自己重新写了一个一层循环的,是上面那个循环所需时间的十分之一,我认为我可以接受了。
如果愿意的话,您可以贴出您的代码,让我以及大家学习学习
对耽误了您的时间,我深感抱歉。

追答

好吧!解决就好!

本回答被提问者采纳
第4个回答  2015-03-18
是需要无重复的输出么?直接使用
unique(a)追问

不是的,谢谢

追答

你要输出的是什么,能描述的更具体点么?