Azzera filtri
Azzera filtri

Delete value in matrix at crescent way and rearrange

1 visualizzazione (ultimi 30 giorni)
Hello everyone and thanks for the help.
I'm working with a 1000x1000 matrix, example:
I want to delete the last value of the last row, and the two last values of the penultimate line, and so go on, like this:
After this I want to bring the last value to the end of the matrix:
And delete the column in the left (cause I bring the lat value of the raw to the right I would get: 1 columns delete for the last raw, 2 columns delete for the penultimate raw, so go on) . So if a did this with the last 500 rows. I would get a 500x500 matrix. Someone have a though about how to begging this script?
Short example: 8x8
...
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
Response: 4x4
..
1 2 3 4
2 3 4 5
2 3 4 5
4 5 6 7

Risposta accettata

Ameer Hamza
Ameer Hamza il 15 Apr 2020
Modificato: Ameer Hamza il 15 Apr 2020
For you short example:
x = [1:8; 1:8; 1:8; 1:8];
n = 4;
new_x = zeros(n);
for i=1:4
new_x(:,i) = diag(x, i-1);
end
Result:
new_x =
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by