creating a large matrix with a pattern
33 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
bus14
am 16 Mai 2019
Bearbeitet: Andrei Bobrov
am 16 Mai 2019
Hi,
I would like to create a 800x200 matrix which looks like:
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
To put in in words, every new column should start with the column [1 1 0 1].' when the other is finished.
Tried to do this with toeplitz. However this results in only 1 step change of columns e.g.
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0
This is not what I desire. Does anyone know another way to do this?
0 Kommentare
Akzeptierte Antwort
convert_to_metric
am 16 Mai 2019
Bearbeitet: convert_to_metric
am 16 Mai 2019
Hi bus14,
Try this:
m=zeros(804,200);
m([1,2,4],:)=1;
m2=reshape(m,800,[]);
m2(:,201)=[];
0 Kommentare
Weitere Antworten (1)
Andrei Bobrov
am 16 Mai 2019
Bearbeitet: Andrei Bobrov
am 16 Mai 2019
out = kron(eye(200),[1;1;0;1]);
or
a = [1;1;0;1;zeros(796,1)];
out = a(mod((1:800)'-(1:4:800),800)+1);
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!