在Matlab中,如果没有for循环,可以使用一些其他的方法来生成列表[1 2 3 2 3 4 3 4 5 ...]。以下是一种可能的方法:
方法一:使用repelem和cumsum函数
n = 5; % 列表的最大值
list = repelem(1:n, 1:n) + cumsum(repelem(0:n-1, 1:n));
解释:
方法二:使用meshgrid和triu函数
n = 5; % 列表的最大值
[X, Y] = meshgrid(1:n);
list = triu(X + Y - 1);
list = list(list > 0);
解释:
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
1 2 3 4 5
0 3 4 5 6
0 0 5 6 7
0 0 0 7 8
0 0 0 0 9
这两种方法都可以在Matlab中生成列表[1 2 3 2 3 4 3 4 5 ...],并且不需要使用for循环。
领取专属 10元无门槛券
手把手带您无忧上云