I want to create a matrix like
1 1
1 2
1 3
1 4
1 5
2 1
2 2
2 3
..
That is, I start from
grids=1:1:5
and I want to repeat this "grids" in the second column. Please advise.

 採用された回答

madhan ravi
madhan ravi 2020 年 7 月 24 日

0 投票

[X, Y] = meshgrid(1:5);
[X(:), Y(:)]

その他の回答 (1 件)

Alan Stevens
Alan Stevens 2020 年 7 月 24 日

0 投票

This will do it:
n = 5; reps = 4;
c1 = ones(n,1)*(1:reps); c1 = c1(:);
c2 = (ones(reps,1)*(1:n))'; c2=c2(:);
M = [c1 c2];

3 件のコメント

madhan ravi
madhan ravi 2020 年 7 月 24 日
編集済み: madhan ravi 2020 年 7 月 24 日
But why so complicated? And the first column doesn’t have 5 in it? In fact a simple call to ndgrid() or meshgrid() would do the job?
Alan Stevens
Alan Stevens 2020 年 7 月 24 日
編集済み: Alan Stevens 2020 年 7 月 24 日
You are right that there are probably easier ways to do it (use of meshgrid would indeed be better, but I just didn't think of it!)
The first column doesn't have a 5 in it because it wasn't clear to me that the op wanted the same number of repeats as grids.
alpedhuez
alpedhuez 2020 年 7 月 24 日
Thank you any way.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

タグ

質問済み:

2020 年 7 月 24 日

コメント済み:

2020 年 7 月 24 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by