Filter löschen
Filter löschen

Using "for" to create loops

1 Ansicht (letzte 30 Tage)
Taner Cokyasar
Taner Cokyasar am 6 Jul. 2016
Kommentiert: Taner Cokyasar am 6 Jul. 2016
I am trying to create a loop to have a (ixm)x2 matrix such as:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
My formulation is as follows:
i = size(input,1);
m = max(input(:,5));
for indice = 1:i;
for indice2 = 1:m;
Zassign = (1,[indice, indice2]);
end
end
I am missing something in here. If you may help me, I would really appreciate it.
  1 Kommentar
Taner Cokyasar
Taner Cokyasar am 6 Jul. 2016
Bearbeitet: Stephen23 am 6 Jul. 2016
If possible, can I also write a matrix as following:
Z 1 1
Z 1 2
Z 1 3
Z 2 1
Z 2 2
Z 2 3
Z 3 1
Z 3 2
Z 3 3
I am a new MATLAB user. I know MATLAB deals with numbers. However, I just wanted to ask to make sure if that is not possible.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Stephen23
Stephen23 am 6 Jul. 2016
Bearbeitet: Stephen23 am 6 Jul. 2016
Why waste time with a loop? Code vectorization is much more beautiful!
>> [X,Y] = meshgrid(1:3);
>> mat = [X(:),Y(:)]
mat =
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
And if you really want the Z's you can print them, but they cannot be stored in a numeric matrix (unless you store the character code):
>> fprintf(' Z %d %d\n',mat.')
Z 1 1
Z 1 2
Z 1 3
Z 2 1
Z 2 2
Z 2 3
Z 3 1
Z 3 2
Z 3 3
  7 Kommentare
Stephen23
Stephen23 am 6 Jul. 2016
Bearbeitet: Stephen23 am 6 Jul. 2016
Did you read the meshgrid documentation ? You can use two inputs to meshgrid:
>> [X,Y] = meshgrid(1:10,1:3);
>> mat = [X(:),Y(:)]
mat =
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
4 1
4 2
4 3
5 1
5 2
5 3
6 1
6 2
6 3
7 1
7 2
7 3
8 1
8 2
8 3
9 1
9 2
9 3
10 1
10 2
10 3
Taner Cokyasar
Taner Cokyasar am 6 Jul. 2016
After this answer, yes :) I appreciate it.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by