# Replace elements in a SxS matrix with zero, in each column but in different rows

4 Ansichten (letzte 30 Tage)
Miroslav Josic am 1 Feb. 2017
Kommentiert: Miroslav Josic am 2 Feb. 2017
Hi people,
I know how to simply replace elements with zero, but I'm stuck with this problem. I have a matrix 2108x62 and I need to replace elements in column #1 and row 1-34 by zero, then in column #2 but row 35-68, then column #3 but row 69-102 etc to the end of column 62 and row 2075-2108.
Best,
Miroslav
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Stephen23 am 1 Feb. 2017
Bearbeitet: Stephen23 am 1 Feb. 2017
This is simple using either the FEX submission expand:
>> mat = randi(9,2108,62);
>> idx = expand(eye(62)==1,[2108/62,1]);
>> mat(idx) = 0;
or for newer MATLAB versions repelem:
>> idx = repelem(eye(62)==1,2108/62,1);
##### 1 Kommentar-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden
Miroslav Josic am 2 Feb. 2017
Hi Stephen,
Thanks a lot for your quick reply. It works perfectly using repelem function.
I really appreciate your help on this!
Best,
Miroslav

Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (1)

David J. Mack am 1 Feb. 2017
Bearbeitet: David J. Mack am 1 Feb. 2017
Hey Miroslav,
have you looked at the sub2ind function? Should be something like the following.
% Let M be your 2108*64 matrix.
iRow=(1:2108)'; %Row indicesin i-j notation
jCol=floor(iRow/34)+1; %Column indices using DIV in i-j notation
ind=sub2ind([2108 62],iRow,jCol); %Linear indices (e.g. 1,1 = 1; n,m=n*m)
M(ind)=0;
Greetings, David
##### 1 Kommentar-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden
Miroslav Josic am 2 Feb. 2017
Hi David,
Unfortunately, it doesn't help much, it says "Out of range subscript". Probably because i get in j column, 1 for rows 1-33 (so the window is 33 actually), then the window is 34 for the rest of the rows. In the end, I miss one row in the sample, therefore the value for last row 2108 is 63.
Miroslav

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Creating and Concatenating Matrices 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