我想从每个向量的特定模式后面的数字生成两个相等长度(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如何通过遵循相同的模式自动生成这些向量。
任何建议都表示赞赏。
答案 0 :(得分:3)
您基本上在寻找上/下三角矩阵的row
和column
指数。因此,我们可以使用find
和triu
-
[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)