re-indexing slices of a matrix
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi all,
I have a matrix A where its second column represents the index of each row. I want to replace these values so that they start from 1. I tried to do this using the code below, but clearly I'm not succeeding.
mainidx = 4; %main indices
desiredidx = 5; %waht i want the indices to be
%the matrix
A = [1 4
4 4
3 4
6 3
3 3
2 1
3 1
7 2
5 2
9 2
5 1
4 1];
%reindexing
for i = 1:mainidx
for j=1:desiredidx
idx = A(:,2)==mainidx;
A(A(:,2)==desiredidx) = mainidx;
A(idx) = desiredidx;
end
end
I want this matrix to look like the following:
A = [1 1
4 1
3 1
6 2
3 2
2 3
3 3
7 4
5 4
9 4
5 5
4 5];
Any help would be appreicted.
0 comentarios
Respuesta aceptada
Voss
el 10 de Jul. de 2024
A = [1 4
4 4
3 4
6 3
3 3
2 1
3 1
7 2
5 2
9 2
5 1
4 1];
A(:,2) = 1+cumsum([false; logical(diff(A(:,2)))]);
disp(A)
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!