我在 Matlab 中有一个 2 年的列,如下所示:
% Col2 Is always greater than Col1
mat = [2009 2012 ;
2012 2012 ;
2012 2013 ;
我需要为第 1 行执行 2009:2012,为第 2 行执行 2012:2012,依此类推...这并不容易,因为每对的大小 1:N 不断变化。
FinalAns = [ 2009
2010
2011
2012 % --
2012 % --
2012
2013 ] ; % --
我不能使用“for”循环,因为数据量非常大,而且我没有成功使用 accumarray
来完成此操作。矢量化解决方案将不胜感激。
最佳答案
这就是你需要的:
n = size(mat, 1);
c = arrayfun(@(x) {mat(x, 1):mat(x, 2)}, 1:n);
FinalAns = [c{:}];
关于matlab - 将 Matlab 中的值增加到第二个值(1 :n logic),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10627820/