matlab - 将 Matlab 中的值增加到第二个值(1 :n logic)

标签 matlab matrix increment

我在 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/

相关文章:

R错误: "number of items to replace is not a multiple of replacement length"

c# - C# 中的增量 Guid

python - 使用 scipy.io.loadmat 从 .mat Matlab 文件将字典键转换为在 Python 中具有相同值的变量名

c - 在c中读取和打印矩阵

matlab - 设置子类属性导致意外错误

c++ - 矩阵处理程序大序列

javascript - 使用 jQuery 开始新的编号列表

java - 使用增量的乘法

使用代码生成将 simulink 模型转换为 C 代码

matlab - 来自边缘列表的邻接矩阵(最好在 Matlab 中)