在matlab中创建2d线性列表

时间:2012-07-31 05:33:49

标签: matlab

非常简单问题我在网上找不到,所以我想我会问:

你可以像这样制作一维线性阵列:

1:10 = 1 2 3 4 5 6 7 8 9 10
1:2:10 = 1 3 5 7 9

如何轻松初始化2D阵列,即

1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

同样的事情,但对于列:

1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4

应该是一行命令。

2 个答案:

答案 0 :(得分:2)

v = 1:5;
A = repmat(v, 4, 1);
B = repmat(v', 1, 4);

AB将满足您的需求。

另一个选择是使用MATLAB索引如下:

v = 1:5;
A = v(ones(4, 1), :);
v = [1:5]';
B = v(:, ones(1, 4));

答案 1 :(得分:2)

或者我已经知道你可以使用meshgrid:

meshgrid(1:4, 1:4) =>

 1     2     3     4
 1     2     3     4
 1     2     3     4
 1     2     3     4

感谢您的帮助和赞成。