使用数字模式生成向量

时间:2017-04-12 21:19:47

标签: matlab

我想从每个向量的特定模式后面的数字生成两个相等长度(n)的向量。对于n = 10,矢量将是

  V1 = [2,3,3,4,4,4,5,5,5,5] and V2 = [1,1,2,1,2,3,1,2,3,4]

对于非常大的n如何通过遵循相同的模式自动生成这些向量。

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:3)

您基本上在寻找上/下三角矩阵的rowcolumn指数。因此,我们可以使用findtriu -

[v2,v1] = find(triu(true(5),1))

示例运行 -

>> [v2,v1] = find(triu(true(5),1));
>> v1.'
ans =
     2     3     3     4     4     4     5     5     5     5
>> v2.'
ans =
     1     1     2     1     2     3     1     2     3     4

我们也可以bsxfun创建上三角矩阵,就像这样 -

bsxfun(@lt,(1:5)',1:5)